我有一个节点HTTPS linux服务器,该服务器处理UPGRADE请求以允许安全的WebSocket连接以及其他HTTPS请求。 99%的时间效果很好。
周期性且不可预测地,客户端Websocket连接尝试到服务器超时(客户端在30秒后放弃)。
我在HTTPS服务器上侦听升级请求,如下所示:
server.on('upgrade', function upgrade(req, socket, head) {
console.log('Upgrade - Beg - '+req.url);
...
在发生客户端超时的情况下,我永远不会收到“升级”事件。
我该如何调试?我是否可以侦听一个较低级别的Node https服务器事件,这可能表明某些情况(例如,我知道连接实际上已到达服务器)?
注意:
当我在客户端(实际上,甚至在30秒之前)检测到超时时,我尝试与同一服务器的另一个HTTPS连接(POST)。有用!该问题似乎仅与websocket连接有关。
我有一些代码可以在遇到超时时重试websocket连接,但是通常需要重试几次才能使超时神奇地消失。
在调试方面的任何帮助将不胜感激。