-
Notifications
You must be signed in to change notification settings - Fork 47
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WebSocket wrong status code should force fallback transport #77
Comments
Ok. Setting this: ProxyServer ps = new ProxyServer(ProxyServer.Protocol.HTTPS, "10.100.0.100", 8080);
ahccBuilder.setProxyServer(ps);
ahccBuilder.setUseRelativeURIsWithSSLProxies(true); Now LONG_POLLING will work. There is still no auto-fallback with this proxy settings possible. I have explicity to specify only LONG_POLLING to get the example working. Otherwise we get following errors: 15:50:17.246 [main] DEBUG c.n.h.c.p.n.NettyAsyncHttpProvider - Number of application's worker threads is 16
15:50:17.375 [main] DEBUG c.n.h.c.p.n.NettyAsyncHttpProvider -
Non cached request
DefaultHttpRequest(chunked: false)
CONNECT external-ip:443 HTTP/1.0
Upgrade: WebSocket
Connection: Upgrade
Origin: http://external-ip:-1
Sec-WebSocket-Key: xKy9mbUm1RF0tvUF/osP5Q==
Sec-WebSocket-Version: 13
Host:external-ip
Proxy-Connection: keep-alive
Accept: */*
User-Agent: NING/1.0
using Channel
[id: 0x033abd61, /10.100.1.72:61509 => /10.100.0.100:8080]
15:50:17.417 [New I/O worker #1] DEBUG o.a.w.transport.WebSocketTransport - Invalid status code 200 for WebSocket Handshake
15:50:17.425 [New I/O worker #1] DEBUG c.n.h.c.p.n.NettyAsyncHttpProvider - Unexpected I/O exception on channel [id: 0x033abd61, /10.100.1.72:61509 => /10.100.0.100:8080]
org.atmosphere.wasync.transport.TransportNotSupported: null
at org.atmosphere.wasync.transport.WebSocketTransport.onStatusReceived(WebSocketTransport.java:184) ~[wasync-1.2.0.jar.jar:na]
at com.ning.http.client.providers.netty.NettyAsyncHttpProvider$WebSocketProtocol.handle(NettyAsyncHttpProvider.java:2308) ~[wasync-1.2.0.jar.jar:na]
at com.ning.http.client.providers.netty.NettyAsyncHttpProvider.messageReceived(NettyAsyncHttpProvider.java:1142) ~[wasync-1.2.0.jar.jar:na]
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:459) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:536) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.java:435) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:107) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:312) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:88) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178) ~[netty-3.6.3.Final.jar:na]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) ~[na:1.7.0_25]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) ~[na:1.7.0_25]
at java.lang.Thread.run(Thread.java:724) ~[na:1.7.0_25]
15:50:17.425 [New I/O worker #1] DEBUG c.n.h.c.p.n.NettyAsyncHttpProvider - Was unable to recover Future: NettyResponseFuture{currentRetry=0,
isDone=false,
isCancelled=false,
asyncHandler=org.atmosphere.wasync.transport.WebSocketTransport@5238e759,
requestTimeoutInMs=60000,
nettyRequest=DefaultHttpRequest(chunked: false)
CONNECTexternal-ip:443 HTTP/1.0
Upgrade: WebSocket
Connection: Upgrade
Origin: http://external-ip:-1
Sec-WebSocket-Key: xKy9mbUm1RF0tvUF/osP5Q==
Sec-WebSocket-Version: 13
Host: external-ip
Proxy-Connection: keep-alive
Accept: */*
User-Agent: NING/1.0,
content=null,
uri=wss://external-ip/chat?X-Atmosphere-Transport=websocket&X-Atmosphere-Framework=2.0&X-atmo-protocol=true&X-Atmosphere-tracking-id=0&X-Cache-Date=0,
keepAlive=true,
httpResponse=DefaultHttpResponse(chunked: true)
HTTP/1.1 200 Connection established
Accept-Ranges: none
Connection: Keep-Alive,
exEx=null,
redirectCount=0,
reaperFuture=com.ning.http.client.providers.netty.NettyAsyncHttpProvider$ReaperFuture@15dcae3b,
inAuth=false,
statusReceived=false,
touch=788777519}
15:50:17.426 [New I/O worker #1] DEBUG c.n.h.c.p.n.NettyAsyncHttpProvider - Aborting Future NettyResponseFuture{currentRetry=0,
isDone=false,
isCancelled=false,
asyncHandler=org.atmosphere.wasync.transport.WebSocketTransport@5238e759,
requestTimeoutInMs=60000,
nettyRequest=DefaultHttpRequest(chunked: false)
CONNECT external-ip:443 HTTP/1.0
Upgrade: WebSocket
Connection: Upgrade
Origin: http://external-ip:-1
Sec-WebSocket-Key: xKy9mbUm1RF0tvUF/osP5Q==
Sec-WebSocket-Version: 13
Host: external-ip
Proxy-Connection: keep-alive
Accept: */*
User-Agent: NING/1.0,
content=null,
uri=wss://external-ip/chat?X-Atmosphere-Transport=websocket&X-Atmosphere-Framework=2.0&X-atmo-protocol=true&X-Atmosphere-tracking-id=0&X-Cache-Date=0,
keepAlive=true,
httpResponse=DefaultHttpResponse(chunked: true)
HTTP/1.1 200 Connection established
Accept-Ranges: none
Connection: Keep-Alive,
exEx=null,
redirectCount=0,
reaperFuture=com.ning.http.client.providers.netty.NettyAsyncHttpProvider$ReaperFuture@15dcae3b,
inAuth=false,
statusReceived=false,
touch=788777519}
15:50:17.426 [New I/O worker #1] DEBUG c.n.h.c.p.n.NettyAsyncHttpProvider - null
org.atmosphere.wasync.transport.TransportNotSupported: null
at org.atmosphere.wasync.transport.WebSocketTransport.onStatusReceived(WebSocketTransport.java:184) ~[wasync-1.2.0.jar.jar:na]
at com.ning.http.client.providers.netty.NettyAsyncHttpProvider$WebSocketProtocol.handle(NettyAsyncHttpProvider.java:2308) ~[wasync-1.2.0.jar.jar:na]
at com.ning.http.client.providers.netty.NettyAsyncHttpProvider.messageReceived(NettyAsyncHttpProvider.java:1142) ~[wasync-1.2.0.jar.jar:na]
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:459) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:536) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.java:435) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:107) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:312) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:88) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178) ~[netty-3.6.3.Final.jar:na]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) ~[na:1.7.0_25]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) ~[na:1.7.0_25]
at java.lang.Thread.run(Thread.java:724) ~[na:1.7.0_25]
15:50:17.426 [New I/O worker #1] DEBUG o.a.w.transport.WebSocketTransport -
org.atmosphere.wasync.transport.TransportNotSupported: null
at org.atmosphere.wasync.transport.WebSocketTransport.onStatusReceived(WebSocketTransport.java:184) ~[wasync-1.2.0.jar.jar:na]
at com.ning.http.client.providers.netty.NettyAsyncHttpProvider$WebSocketProtocol.handle(NettyAsyncHttpProvider.java:2308) ~[wasync-1.2.0.jar.jar:na]
at com.ning.http.client.providers.netty.NettyAsyncHttpProvider.messageReceived(NettyAsyncHttpProvider.java:1142) ~[wasync-1.2.0.jar.jar:na]
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:459) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:536) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.java:435) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:107) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:312) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:88) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178) ~[netty-3.6.3.Final.jar:na]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) ~[na:1.7.0_25]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) ~[na:1.7.0_25]
at java.lang.Thread.run(Thread.java:724) ~[na:1.7.0_25]
java.io.IOException: Connection Error 200 : Connection established
at org.atmosphere.wasync.transport.WebSocketTransport.connectFutureException(WebSocketTransport.java:301)
at org.atmosphere.wasync.transport.WebSocketTransport.onFailure(WebSocketTransport.java:335)
at org.atmosphere.wasync.transport.WebSocketTransport.onThrowable(WebSocketTransport.java:103)
at com.ning.http.client.providers.netty.NettyResponseFuture.abort(NettyResponseFuture.java:327)
at com.ning.http.client.providers.netty.NettyAsyncHttpProvider.abort(NettyAsyncHttpProvider.java:1320)
at com.ning.http.client.providers.netty.NettyAsyncHttpProvider.exceptionCaught(NettyAsyncHttpProvider.java:1535)
at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:112)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:560)
at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:787)
at org.jboss.netty.handler.codec.frame.FrameDecoder.exceptionCaught(FrameDecoder.java:377)
at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:112)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:560)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:555)
at org.jboss.netty.channel.Channels.fireExceptionCaught(Channels.java:525)
at org.jboss.netty.channel.AbstractChannelSink.exceptionCaught(AbstractChannelSink.java:48)
at org.jboss.netty.channel.DefaultChannelPipeline.notifyHandlerException(DefaultChannelPipeline.java:654)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:562)
at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:787)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296)
at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:459)
at org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:536)
at org.jboss.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.java:435)
at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:560)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:555)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)
at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:107)
at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:312)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:88)
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)
Caused by: Connection Error 200 : Connection established
at org.atmosphere.wasync.transport.WebSocketTransport.onStatusReceived(WebSocketTransport.java:184)
at com.ning.http.client.providers.netty.NettyAsyncHttpProvider$WebSocketProtocol.handle(NettyAsyncHttpProvider.java:2308)
at com.ning.http.client.providers.netty.NettyAsyncHttpProvider.messageReceived(NettyAsyncHttpProvider.java:1142)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296)
at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:459)
at org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:536)
at org.jboss.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.java:435)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)
at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:107)
at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:312)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:88)
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
... 3 more
Connection Error 200 : Connection established
Choose Name:
at org.atmosphere.wasync.transport.WebSocketTransport.onStatusReceived(WebSocketTransport.java:184)
at com.ning.http.client.providers.netty.NettyAsyncHttpProvider$WebSocketProtocol.handle(NettyAsyncHttpProvider.java:2308)
at com.ning.http.client.providers.netty.NettyAsyncHttpProvider.messageReceived(NettyAsyncHttpProvider.java:1142)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296)
at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:459)
at org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:536)
at org.jboss.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.java:435)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)
at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:107)
at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:312)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:88)
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)
15:50:17.434 [New I/O worker #1] DEBUG c.n.h.c.p.n.NettyAsyncHttpProvider -
Non cached request
DefaultHttpRequest(chunked: false)
CONNECT external-ip:443 HTTP/1.0
Host: external-ip
Connection: keep-alive
Proxy-Connection: keep-alive
Accept: */*
User-Agent: NING/1.0
using Channel
[id: 0x82cb7f52]
15:50:17.435 [New I/O worker #1] INFO o.a.wasync.impl.DefaultSocket - Waiting 2000, allowing the http connection to get handled by the server. To reduce the delay, make sure some bytes get written when the connection is suspended on the server
15:50:17.464 [New I/O worker #2] DEBUG c.n.h.c.p.n.NettyAsyncHttpProvider -
Request DefaultHttpRequest(chunked: false)
CONNECT external-ip:443 HTTP/1.0
Host: external-ip
Connection: keep-alive
Proxy-Connection: keep-alive
Accept: */*
User-Agent: NING/1.0
Response DefaultHttpResponse(chunked: false)
HTTP/1.1 200 Connection established
Accept-Ranges: none
Connection: Keep-Alive
15:50:17.464 [New I/O worker #2] DEBUG c.n.h.c.p.n.NettyAsyncHttpProvider - Connected to 10.100.0.100:8080
15:50:17.464 [New I/O worker #2] DEBUG c.n.h.c.p.n.NettyAsyncHttpProvider - Connecting to proxy https://10.100.0.100:8080 for scheme https://external-ip/chat?X-Atmosphere-Transport=STREAMING&X-Atmosphere-Framework=2.0&X-atmo-protocol=true&X-Atmosphere-tracking-id=0&X-Cache-Date=0
15:50:17.630 [New I/O worker #2] DEBUG c.n.h.c.p.n.NettyAsyncHttpProvider -
Using cached Channel [id: 0x82cb7f52, /10.100.1.72:61510 => /10.100.0.100:8080]
for request
DefaultHttpRequest(chunked: false)
GET /chat?X-Atmosphere-Transport=STREAMING&X-Atmosphere-Framework=2.0&X-atmo-protocol=true&X-Atmosphere-tracking-id=0&X-Cache-Date=0 HTTP/1.1
Host: external-ip
Connection: keep-alive
Proxy-Connection: keep-alive
Accept: */*
User-Agent: NING/1.0
checkServerTrusted
RSA
[Ljava.security.cert.X509Certificate;@442562f2
15:50:17.705 [New I/O worker #2] DEBUG c.n.h.c.p.n.NettyAsyncHttpProvider -
Request DefaultHttpRequest(chunked: false)
GET /chat?X-Atmosphere-Transport=STREAMING&X-Atmosphere-Framework=2.0&X-atmo-protocol=true&X-Atmosphere-tracking-id=0&X-Cache-Date=0 HTTP/1.1
Host: external-ip
Connection: keep-alive
Proxy-Connection: keep-alive
Accept: */*
User-Agent: NING/1.0
Response DefaultHttpResponse(chunked: true)
HTTP/1.1 200 OK
Content-Type: text/plain
Transfer-Encoding: chunked
Expires: -1
Connection: Keep-Alive
X-Atmosphere-tracking-id: ff8de252-5753-44c6-9da6-4ab540875229
Server: Nettosphere/2.0
Pragma: no-cache
Cache-Control: no-store, no-cache, must-revalidate
Transport:STREAMING
Transport: STREAMING
Headers: "Content-Type=text/plain"; "Transfer-Encoding=chunked"; "Expires=-1"; "Connection=Keep-Alive"; "X-Atmosphere-tracking-id=ff8de252-5753-44c6-9da6-4ab540875229"; "Server=Nettosphere/2.0"; "Pragma=no-cache"; "Cache-Control=no-store, no-cache, must-revalidate"
Open
15:50:17.709 [New I/O worker #1] DEBUG c.n.h.c.p.netty.NettyResponseFuture - asyncHandler.onThrowable
java.util.ConcurrentModificationException: null
at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:819) ~[na:1.7.0_25]
at java.util.ArrayList$Itr.next(ArrayList.java:791) ~[na:1.7.0_25]
at org.atmosphere.wasync.transport.TransportsUtil.invokeFunction(TransportsUtil.java:60) ~[wasync-1.2.0.jar.jar:na]
at org.atmosphere.wasync.transport.WebSocketTransport.onFailure(WebSocketTransport.java:336) ~[wasync-1.2.0.jar.jar:na]
at org.atmosphere.wasync.transport.WebSocketTransport.onThrowable(WebSocketTransport.java:103) ~[wasync-1.2.0.jar.jar:na]
at com.ning.http.client.providers.netty.NettyResponseFuture.abort(NettyResponseFuture.java:327) ~[wasync-1.2.0.jar.jar:na]
at com.ning.http.client.providers.netty.NettyAsyncHttpProvider.abort(NettyAsyncHttpProvider.java:1320) ~[wasync-1.2.0.jar.jar:na]
at com.ning.http.client.providers.netty.NettyAsyncHttpProvider.exceptionCaught(NettyAsyncHttpProvider.java:1535) ~[wasync-1.2.0.jar.jar:na]
at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:112) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:560) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:787) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.handler.codec.frame.FrameDecoder.exceptionCaught(FrameDecoder.java:377) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:112) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:560) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:555) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.channel.Channels.fireExceptionCaught(Channels.java:525) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.channel.AbstractChannelSink.exceptionCaught(AbstractChannelSink.java:48) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.channel.DefaultChannelPipeline.notifyHandlerException(DefaultChannelPipeline.java:654) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:562) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:787) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:459) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:536) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.java:435) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:560) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:555) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:107) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:312) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:88) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108) ~[netty-3.6.3.Final.jar:na]
at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) ~[netty-3.6.3.Final.jar:na]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) ~[na:1.7.0_25]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) ~[na:1.7.0_25]
at java.lang.Thread.run(Thread.java:724) ~[na:1.7.0_25]
15:50:17.709 [New I/O worker #1] WARN c.n.h.c.p.n.NettyAsyncHttpProvider - onError [id: 0x033abd61, /10.100.1.72:61509 => /10.100.0.100:8080] EXCEPTION: Connection Error 200 : Connection established
15:50:17.710 [New I/O worker #1] ERROR o.a.w.transport.WebSocketTransport - WebSocket Handshake Failed
15:50:17.710 [New I/O worker #1] DEBUG c.n.h.c.p.n.NettyAsyncHttpProvider - Closing Channel [id: 0x033abd61, /10.100.1.72:61509 => /10.100.0.100:8080]
15:50:17.710 [New I/O worker #1] DEBUG c.n.h.c.p.n.NettyAsyncHttpProvider - Channel Closed: [id: 0x033abd61, /10.100.1.72:61509 :> /10.100.0.100:8080] with attachment com.ning.http.client.providers.netty.NettyAsyncHttpProvider$DiscardEvent@73216bf0 |
@Frintrop Seems your proxy doesn't support WebSocket as the status received is not |
yes ... but maybe our customers don´t know if their companies proxy support websocket or not. It would be great if in that case a failover would happen ... |
Agree. Changed the title of the issue to reflect the problem. |
OK released 1.2.0 today without the fix for it as I didn't have time. I will work on it and this will be fixed soon and added to 1.2.1. Thanks! |
This bug was in AHC 1.7.x. Try wAsync 1.3.0-SNAPSHOT which use AHC 1.8.1 and it should work. |
This still seems to happen. Reproduced easily by using Tinyproxy, which doesn't know how websockets work, and returns a 403 for all WS upgrades. |
We are evaluating your atmosphere framework. We are using the nettosphere chat (2.1) example and wasync (2.1) for this purpose. We have successfully setup a SSL connection from wasync client to nettosphere and all transports running perfectly.
One of our must-have features is the ability to use a proxy server behind the client. Therefor we have setup wasync client this way:
We can now get now connect, while the clients tries WS,SSE and STREAMING as transport and stops with an error.
If we only request LONG_POLLING wasync client seems to become connected but nettosphere server answers:
Removing the proxy line everything with every transport works perfect.
What´s missing to get this running ?
( external-ip is a replacement for a public ip address )
Many thx and happy new year
André
The text was updated successfully, but these errors were encountered: