接続されたユーザーにのみ転送-v 1
4534 ワード
現在の状況では、部屋を建てる機能はありません.したがって、ウィンドウが開いている場合は、無条件に接続されます.
しかし,接続したユーザにのみ伝達する機能を実現したい.
その後、
この場合、valueに格納されたsocketオブジェクトの
これは、
独自接続の場合でも、自分から送信したメッセージが画面に出力されます.
2人でメッセージをやりとりする内容も画面にうまく記録できます.
しかし,接続したユーザにのみ伝達する機能を実現したい.
const users = {};
io.on('connection', (socket) => {
console.log(socket.id + "is connected.");
users[socket.id] = socket;
socket.on('chat message', (message) => {
for (const user in users) {
io.to(user).emit('chat message', message);
}
});
socket.on('disconnect', () => {
console.log(socket.id + 'is disconnected.');
delete users[socket.id];
});
});
まず、ユーザーを識別するキーとしてsocket.id
の値を使用するusersというオブジェクトを作成し、valueはsocketオブジェクト自体を渡します.その後、
chat messsage
イベントが発生した場合、chat message
のみが登録ユーザにブロードキャストされる.この場合、valueに格納されたsocketオブジェクトの
connected
パーセントによって、ユーザが接続されているかどうかを決定することができるが、このような検査は必要ない.これは、
disconnect
イベントが発生すると、対応するユーザデータが削除されるためです.もちろん、今後は様々な機能が加わるにつれて異なるかもしれませんが、これで十分だと思います.実行結果
独自接続の場合でも、自分から送信したメッセージが画面に出力されます.
2人でメッセージをやりとりする内容も画面にうまく記録できます.
Reference
この問題について(接続されたユーザーにのみ転送-v 1), 我々は、より多くの情報をここで見つけました https://velog.io/@shin0805/접속한-사용자에게만-전달-v1テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol