首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >netty-socketio:客户端没有完成升级关闭传输。

netty-socketio:客户端没有完成升级关闭传输。
EN

Stack Overflow用户
提问于 2016-02-11 01:36:10
回答 1查看 1.2K关注 0票数 0

我有一个套接字服务器运行着netty-socketio,还有一个使用Socket.IO客户端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上的错误,但我不知道为什么会随机发生(有时在第一次尝试时)。

任何关于这方面的想法都是非常感谢的。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-22 22:42:11

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

代码语言:javascript
复制
var socket = io('server-address', { transports: [ 'polling' ] });
// or
var socket = io('server-address', { transports: [ 'websocket' ] });

如果不指定它,将使用轮询作为传输方法来建立连接,netty将自动尝试将其升级到websocket。这就是导致连接失败的原因。

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

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35329288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档