4

サーバーがリクエストを受け取るたびに、サーバー側(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});

ありがとうございました!

4

1 に答える 1

0

Googleでこれを見つけた人のために-今すぐこれに対する解決策があります:

Socket.disconnect() はクライアント (サーバー側) をキックします。クライアントが接続を維持する機会はありません:)

socket.io と nodejs を使用してクライアントをサーバーから強制的に切断する

disconnect() 行を削除するだけでよいと思います。

于 2012-10-24T13:00:58.980 に答える