【发布时间】:2016-10-18 12:28:47
【问题描述】:
我有使用 Express 运行的 socket.io。当我在终端上按CTRL-C停止服务器运行时,浏览器继续报如下:
我发现了各种类似的问题,但都没有帮助我解决我的问题。
谁能告诉我如何告诉 socket.io 在服务器停止运行时取消重新连接尝试。
在此先感谢
【问题讨论】:
-
你试过删除socket对象吗?
标签: javascript socket.io
我有使用 Express 运行的 socket.io。当我在终端上按CTRL-C停止服务器运行时,浏览器继续报如下:
我发现了各种类似的问题,但都没有帮助我解决我的问题。
谁能告诉我如何告诉 socket.io 在服务器停止运行时取消重新连接尝试。
在此先感谢
【问题讨论】:
标签: javascript socket.io
简短回答:
别再按CTRL-C了,开玩笑的。
长答案:
你可以做几件事:
1) 您可以更改客户端上的reconnection options,或许将reconnection 设置为false。但也许这对于现实世界来说是不可取的,所以你可以这样做:
2) Disconnect the client socket from the server 在服务器退出之前。退出策略取决于您使用的服务器。
3) 如果选项 1 和 2 不可行,那么您将无能为力,因为您正在关闭服务器并让您的客户端挂起 - 卡在时间里,以为服务器有一天会返回。不过,它并不在乎。你是那个大嘴巴的控制台……
希望对你有帮助!
【讨论】:
我找到了解决办法。
我仍然想知道为什么 socket.io 中的某些事件似乎没有被触发,但也许这是另一个问题。帮助我解决问题的代码是:
var socket = io.connect('http://localhost:3000', {'reconnection': false});
感谢您的贡献
【讨论】:
我的解决方案。
let socket = io.connect(null, {port:5000, rememberTransport: false});
【讨论】: