サーバーがリクエストを受け取るたびに、サーバー側(node.jsを使用)に新しいsockei.io-clientを作成したい。しかし、以下のコードは 1 回しか機能せず、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});
ありがとうございました!