Javascript netty socketio:客户端未完成升级-正在关闭传输

Javascript netty socketio:客户端未完成升级-正在关闭传输,javascript,java,http,socket.io,netty,Javascript,Java,Http,Socket.io,Netty,我有一个运行netty socketio的socket服务器和一个使用socket.io-client JS库连接到它的web应用程序 问题是我失去了一些连接(不是全部,比方说20%) 对于丢失的连接:在客户端建立连接之后,服务器立即记录客户端未完成升级-关闭传输并断开客户端的连接 这发生在我的生产服务器(使用nginx作为代理)和本地环境(直接连接到netty socketio服务器)上。它几乎是随机的,我无法识别它的模式。例如,如果我持续刷新浏览器上的客户端应用程序(间隔5秒),在某个时候会

我有一个运行netty socketio的socket服务器和一个使用socket.io-client JS库连接到它的web应用程序

问题是我失去了一些连接(不是全部,比方说20%)

对于丢失的连接:在客户端建立连接之后,服务器立即记录
客户端未完成升级-关闭传输
并断开客户端的连接

这发生在我的生产服务器(使用nginx作为代理)和本地环境(直接连接到netty socketio服务器)上。它几乎是随机的,我无法识别它的模式。例如,如果我持续刷新浏览器上的客户端应用程序(间隔5秒),在某个时候会发生此错误,并且在随后的尝试中,它将再次正常工作(直到下次发生)

这是netty socketio库上的错误: 但我不明白为什么它会随机发生(第一次尝试时有时会发生)

对此有任何想法都非常感谢


谢谢

经过一些研究和测试,我发现当使用netty socketio作为服务器时,需要在客户端指定传输方法

var socket = io('server-address', { transports: [ 'polling' ] });
// or
var socket = io('server-address', { transports: [ 'websocket' ] });
如果未指定,将使用轮询作为传输方法建立连接,netty将自动尝试将其升级到websocket。这就是导致连接失败的原因


指定传输方法后,到目前为止,我的连接失败率为0%。

经过一些研究和测试,我发现在使用netty socketio作为服务器时,需要在客户端指定传输方法

var socket = io('server-address', { transports: [ 'polling' ] });
// or
var socket = io('server-address', { transports: [ 'websocket' ] });
如果未指定,将使用轮询作为传输方法建立连接,netty将自动尝试将其升级到websocket。这就是导致连接失败的原因


指定传输方法后,到目前为止,我的连接失败率为0%。

你是救命稻草。在这上面花了大约2个小时,你一直都有魔法粉尘。你是一个救命的伴侣。在这上面花了大约2个小时,你一直都有神奇的灰尘。