node.js - SocketIO + Node - 恢复丢失的连接

标签 node.js socket.io

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

1) Node 日志中的警告信息:

(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)

这是一个 XHR 警告的示例,我可以理解为 XHR 的本质是多个连接/断开连接。但是,当我有相当多的客户端通过其他传输连接时,我会得到相同的结果。

2) 随机连接中断。由于某些无法解释的原因,连接随机断开。这不是机器或浏览器,甚至不是传输特定的。浏览器上的连接将随机停止接收更新。 Node 日志中没有特定的断开连接消息,手动刷新浏览器可以解决问题。

那么,我想知道的是 - 这两个问题是相关的还是独立的问题?您是否经历过这些连接中断?如果是这样,你是如何设法解决它们的?它非常令人沮丧,因为它非常接近 100% 完美。我很想感到温暖和舒适,因为所有查看我的应用程序页面的客户都将在数小时甚至几天内收到一致的更新,如果他们愿意的话。

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

干杯,

皮特

最佳答案

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

我已经使用这个库大约一个星期了,我已经看到了那个确切的错误,以及无法持久保存 websocket 连接的其他错误(在自然支持该技术的浏览器上),随机 session 身份证滴。一般来说,我们几乎没有什么可靠的工作。

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

Socket.io 是一个有问题的库。

关于node.js - SocketIO + Node - 恢复丢失的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4884990/

相关文章:

node.js - 使用 vimeo 上传视频

node.js - socket.io 中的 emit 方法的成功回调

node.js 和 socket.io - 广播未定义

html - socket.io 客户端到客户端消息传递

javascript - HTML5 <a> Javascript 中的下载属性未处理服务器错误

angularjs - 如何使用 NodeJS 和 browserSync 进行服务器端 HTML5 模式 URL 重写

react-native - 当 native 应用程序处于后台/设备被锁定时,如何防止socket.io断开连接?

node.js - 在 node.js 和 Mongoose 中添加 friend 路线的正确方法?

node.js - 使用 Sequelize

node.js - google-auth-library v.1.0 如何仅用于身份验证?