0

node.js 接続フレームワークを使用して、アップグレード イベントをリッスンしています。コールバック関数でソケットを使用して、クライアントに書き戻すことができます。しかし、コールバック関数の外側のソケットを使用して同じクライアントに書き込むにはどうすればよいですか。私の場合、サーバーに接続されているクライアントは 1 つだけです。

app.on('upgrade', function(req, socket) {
    socket.write('hello');    
});

function sendEvent()
{
 // how to use socket here??
}

sendEvent();
4

2 に答える 2

1

後で使用するためにソケットを保存してみてください (つまり、app.on()関数の外で):

var socket;

app.on('upgrade', function(req, sock) {
    socket = sock;
    socket.write('hello');
});

function sendEvent() {
    socket.write('hi!');
}

sendEvent();
于 2012-05-31T02:14:23.507 に答える
0

もしも:

  • 実際には、このサーバーに接続されているクライアントは1つだけです。
  • 複数のクライアントが接続されていますが、すべてのクライアントがイベントを受信して​​も問題ありません

その後、あなたは使用することができます

sockets.emit("some_event")

これは、接続されているすべてのクライアント(またはあなたの場合は1つのクライアント)にブロードキャストします。

于 2012-05-31T03:53:51.417 に答える