Node.js + ws – websocket意外closures

我有一个Node.js + ws服务器和一个Qt客户端 。 在某些情况下,我遇到意外closureswebsocket连接的问题。 在我的客户端中,我遍历一系列对象并向服务器发送一系列请求。 然后服务器访问数据库,然后将响应写回客户端。 这是(简化的)基本服务器循环:

// ... var httpServer = http.createServer(//params); var WebSocketServer = require('ws').Server; var wss = new WebSocketServer({ server: httpServer }); // ... wss.on('connection', function connection(ws) { ws.on('message', function incoming(msg) { handleRequest(JSON.parse(msg), function (err, result) { if (err) throw err; ws.send(JSON.stringify(result), function ack(error) { if (error) throw error; } } }); }); 

如果我限制来自客户端的请求数量,一切工作正常。 但是,如果我达到了一个关键数量的请求,数据停止从服务器返回和websocket连接超时。

我想知道是否需要在每次写入之前或之后刷新服务器上的websocket? QtWebSocket有一个flush()方法,但我没有在ws文档中看到这个function。 任何想法,将不胜感激。

更新:我也应该注意,没有错误发送到wswss 。 数据刚刚停止stream动。

更新2:好吧,这似乎很明显是从我的客户端通过互联网传输超大型数据包到节点+ WS服务器的问题。 基于Wireshark的痕迹,一旦达到超大的门槛,sockets胡扯,但只有当我远程连接到服务器。 如果服务器位于本地子网上,则超大包将正确传输到服务器。 任何想法如何debugging呢?

我更换了一台路由器后,这个问题解决了。 我正在用旧的路由器来解决硬件问题。 这是消费级的硬件,所以我希望这不应该是一个生产问题。 这确实让我想知道有多less这样的错误可能会在互联网上出现…