socket.io javascript 客户端重启服务器后重连失败
socket.io javascript client fails to reconnect after restarting server
我正在使用 "socket.io":“1.4.5”,"socket.io-redis":“1.0.0”。使用 socket-io-client 的 javascript 客户端似乎可以愉快地连接到服务器,除非服务器重新启动。连接尝试触发 'connect_error' 事件失败,消息为“{"message":"xhr poll error", "type":"TransportError","description":0"}'。如果我通过浏览器重新启动,连接工作正常。我还注意到,如果我在 'connect_error' 的事件处理程序中设置断点并等待几秒钟,连接尝试最终会成功。我缺少一些配置设置在客户端代码中?这是我的客户端代码
var socketConnectParams = {'max reconnection attempts': 150};
socketConnectParams['reconnection'] = true;
socketConnectParams['reconnectionDelay'] = 5000;
socketConnectParams['reconnectionDelayMax'] = 15000;
var socket = io('http://localhost:8888', socketConnectParams);
socket.on('connect', function () { });
socket.on('connect_error', function(error) {
dLog("connection error event received." + JSON.stringify(error));
});
我监听一个 "disconnect" 事件以重新绑定一个新的 'connect' 事件。这样,如果您的服务器重新启动,本地客户端将检测到这一点并为服务器再次启动创建一个新的侦听器。也许你可以试试。
socket.on('disconnect', function(){
socketCleanup(); // this is a function to cleanup all listeners, just in case, so you can restart fresh
socket.on('connect', function(){
socketConnect();
});
});
我正在使用 "socket.io":“1.4.5”,"socket.io-redis":“1.0.0”。使用 socket-io-client 的 javascript 客户端似乎可以愉快地连接到服务器,除非服务器重新启动。连接尝试触发 'connect_error' 事件失败,消息为“{"message":"xhr poll error", "type":"TransportError","description":0"}'。如果我通过浏览器重新启动,连接工作正常。我还注意到,如果我在 'connect_error' 的事件处理程序中设置断点并等待几秒钟,连接尝试最终会成功。我缺少一些配置设置在客户端代码中?这是我的客户端代码
var socketConnectParams = {'max reconnection attempts': 150};
socketConnectParams['reconnection'] = true;
socketConnectParams['reconnectionDelay'] = 5000;
socketConnectParams['reconnectionDelayMax'] = 15000;
var socket = io('http://localhost:8888', socketConnectParams);
socket.on('connect', function () { });
socket.on('connect_error', function(error) {
dLog("connection error event received." + JSON.stringify(error));
});
我监听一个 "disconnect" 事件以重新绑定一个新的 'connect' 事件。这样,如果您的服务器重新启动,本地客户端将检测到这一点并为服务器再次启动创建一个新的侦听器。也许你可以试试。
socket.on('disconnect', function(){
socketCleanup(); // this is a function to cleanup all listeners, just in case, so you can restart fresh
socket.on('connect', function(){
socketConnect();
});
});