SocketIO +节点 - 恢复丢失的连接

Pet*_*ohn 6 node.js socket.io

我正在使用socketio/node,向浏览器提供一些时髦的统计数据,所有标准内容.我正在使用这两个库的最新版本.现在,我遇到了几个问题:

1)节点日志中的警告消息:

(node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.
Trace: 
    at CleartextStream.<anonymous> (events.js:101:17)
    at [object Object].<anonymous> (/var/www/lib/other/Socket.IO/lib/socket.io/client.js:83:20)
    at [object Object]._onConnect (/var/www/lib/other/Socket.IO/lib/socket.io/transports/xhr-polling.js:23:35)
    at [object Object].check (/var/www/lib/other/Socket.IO/lib/socket.io/listener.js:77:12)
    at Server.<anonymous> (/var/www/lib/other/Socket.IO/lib/socket.io/listener.js:33:14)
    at Server.emit (events.js:45:17)
    at HTTPParser.onIncoming (http.js:904:12)
    at HTTPParser.onHeadersComplete (http.js:87:31)
    at CleartextStream.ondata (http.js:820:22)
    at CleartextStream._blow (tls.js:228:29)
Run Code Online (Sandbox Code Playgroud)

这是XHR警告的一个例子,我可以理解,因为XHR的性质是多个连接/断开连接.但是,当我有很多客户通过其他传输连接时,我得到相同的.

2)随机连接丢失.由于一些莫名其妙的原因,连接随机丢失.这不是机器或浏览器甚至是特定的传输.浏览器上的连接将随机停止接收更新.节点日志中没有特定的断开连接消息,手动刷新浏览器可以解决问题.

那么,我想知道的是 - 这两个问题是相关的,还是单独的问题?您是否经历过这些连接丢失?如果是这样,你是如何设法解决它们的?它非常令人沮丧,因为它非常接近100%完美.我希望感到温暖和亲切,因为我们知道所有查看我的应用程序页面的客户都会收到数小时甚至数天的一致更新.

非常感谢您的帮助和建议!

干杯,

皮特

Mas*_*utz 3

先生,我希望能为您提供可靠的答案,但我至少可以为您提供健全性检查。

我已经搞乱这个库大约一周了,我已经看到了确切的错误,以及无法持久保存 websocket 连接的其他错误(在自然支持该技术的浏览器上)、随机会话 ID 丢失。一般来说,几乎没有什么可以可靠地工作。

平心而论,它是免费的并且仍处于测试阶段,所以你已经拥有它了。

Socket.io 是一个有缺陷的库。

  • 它有一些怪癖,但如果你问我,称它为有缺陷的库有点夸张。我挑战你写一个更好的库,或者如果你认为你可以做得更好的话,分叉它并修复它...... (4认同)