node.js上的Socket.io-client只能运行一次

时间:2012-10-24 12:35:13

标签: node.js socket.io

每次服务器获取请求时,我想在服务器端(使用node.js)创建新的sockei.io-client。但是下面的代码只运行一次,然后sockei.io-client没有响应。应用程序不会停止,没有错误。

var http = require("http");


http.createServer(function(request, response) {

var io = require('socket.io-client'); 
localSocket = io.connect('http://localhost:9876/');
localSocket.on('connect', function (data) {
                         response.writeHead(200, {"Content-type": "text/plain"});
                         response.write(data.name);
                         response.end();
                         localSocket.disconnect();
       });


}).listen(8080);

Socket.io服务器(在localhost:9876上)运行良好 - 它为客户提供名称(

 data.name

在这里的代码中。)

有什么问题?

更新:问题由我自己解决:要为socket.io-client运行多个连接,需要添加连接选项{'force new connection':true},如下所示:

localSocket = io.connect('http://localhost:9876/', {'force new connection': true});

谢谢!

1 个答案:

答案 0 :(得分:0)

  

对于那些在谷歌上发现这一点的人 - 现在有一个解决方案:

     

Socket.disconnect()踢客户端(服务器端)。客户没有机会保持联系:)

force client disconnect from server with socket.io and nodejs

我认为您只需删除disconnect()行。