我正在使用" socket.io":" 1.4.5"," socket.io-redis":" 1.0。 0&#34 ;.使用socket-io-client的javascript客户端似乎很乐意连接到服务器,除非服务器重新启动。连接尝试失败,触发“connect_error”#39;带有消息的事件' {"消息":" xhr轮询错误","输入":" TransportError","描述":0"}&#39 ;.如果我通过浏览器重新启动连接工作正常。我还注意到,如果我在事件处理程序中为' 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));
});
答案 0 :(得分:3)
我收听“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();
});
});