2017-12-02 9 views
0

名前空間を指定せずにソケットIDで個別のsocketid(プライベートメッセージ)に送信できますか?Socket.io。名前空間を指定せずに個々のsocketid(プライベートメッセージ)にソケットIDで送信することは可能ですか?

サンプル:socket.to(socketId).emit('message')。それは私にとってはうまくいかない。

名前空間のみで動作します。 namespaceIo.to(socketId).emit('message')

名前空間を指定せずにソケットIDで個別のsocketid(プライベートメッセージ)に送信することはできますか?同じソケットIDはすべてサーバー用にグローバルであるためです。

+0

に送られた同じIDです

# server side var nsp = io.of('/foo'); nsp.on('connection', function (socket) { // Broadcast new connection to everyone except the sender in namespace foo socket.broadcast.emit('new-socket-connection', socket.id); socket.on('response', function(data) { socket.to(data.responseId).emit('message', data.msg); }); }); 

それはあなたが「ダイレクトメッセージ」によって何を意味するかは明らかではありません。これは標準のsocket.io用語ではありません。 – jfriend00

+0

@ jfriend00 私は個人的なsocketid(私的なメッセージ)に送ることを意味します –

答えて

1

あなただけの、そのソケットのID値を持っている場合、あなたはこれを行うことができ、単一のソケットに直接サーバーにメッセージを送信するには:この場合

io.to(socketId).emit('message'); 

を、トップレベルの名前空間のようなio作品。

+0

はい、私は知っています。しかし、私は複数の名前空間を持っています。そして、私は個別のsocketid(プライベートメッセージ)**に名前空間を指定せずに**送ってほしい。出来ますか?あなたの例は、デフォルト( '/')名前空間だけで動作します。 –

+1

@YuryGolikov - あなたは私を混乱させています。対象のソケットが特定の名前空間にあるかどうか私はsocket.ioが名前空間に関係なくすべてのソケットのグローバルリストを保持しているとは思わない。特定の名前空間にソケットのリストを保持します。これは名前空間の完全なポイントです(別々のソケットのリストを維持するため)。 – jfriend00

+0

はい。私は複数の名前空間を持っています。それらの1つでは、ソケット。例:/ ns1および/ ns2私はソケットIDを持っています。しかし、このソケットの名前空間は分かりません。ソケットIDのみを知っている個々のソケットID(プライベートメッセージ)に送信できますか? –

0

同じ名前空間内の別のソケットに送信する場合は、名前空間を指定する必要はありません。そうでなければ、代わりに部屋を使うことを検討すべきです。ここでは基本的な例である:responseId'new-socket-connection'

関連する問題