Jos*_*ima 0 javascript java http netty socket.io
我有一个运行netty-socketio的套接字服务器和一个使用socket.io-client JS库连接到它的Web应用程序。
问题是我失去了一些连接(不是全部,比如说20%)。
对于丢失的连接:在客户端建立连接后,服务器立即登录client did not complete upgrade - closing transport并断开客户端连接。
这发生在我的生产服务器(使用nginx作为代理)以及我的本地环境(直接连接到netty-socketio服务器)上。这几乎是随机的,我无法确定其上的图案。例如,如果我持续不断地刷新浏览器上的客户端应用程序(间隔为5秒),则有时会发生此错误,并且对于随后的尝试,它将再次正常运行(直到再次发生)。
这是netty-socketio库上的错误:https : //github.com/mrniko/netty-socketio/blob/master/src/main/java/com/corundumstudio/socketio/transport/WebSocketTransport.java#L196 但我无法弄清楚为什么它是随机发生的(第一次尝试有时会发生)
任何对此的想法都非常感激。
谢谢
经过一些研究和测试,我发现使用netty-socketio作为服务器时,需要在客户端指定传输方法。
var socket = io('server-address', { transports: [ 'polling' ] });
// or
var socket = io('server-address', { transports: [ 'websocket' ] });
Run Code Online (Sandbox Code Playgroud)
如果未指定,则将使用轮询作为传输方法来建立连接,netty将自动尝试将其升级到websocket。这是导致连接失败的原因。
指定传输方式后,到目前为止,我的连接失败率为0%。
| 归档时间: |
|
| 查看次数: |
537 次 |
| 最近记录: |