-1
私はsocket.io内の部屋から削除したい特定のsocket_idを持っています。これを行う簡単な方法はありますか?私が見つけることができる唯一の方法は、ソケット自体で切断することです。Socket.IO:特定のsocket_idをルームから削除しますか?
私はsocket.io内の部屋から削除したい特定のsocket_idを持っています。これを行う簡単な方法はありますか?私が見つけることができる唯一の方法は、ソケット自体で切断することです。Socket.IO:特定のsocket_idをルームから削除しますか?
クライアントから、自分のメッセージをサーバーに送信し、サーバーにそのサーバーをルームから削除するよう依頼します。サーバーはsocket.leave("someRoom")
を使用して、指定された部屋からそのソケットを削除できます。クライアントは部屋に参加したり、部屋を離れたりすることはできません。部屋への参加と部屋への出入りは、サーバーによって行われなければなりません(チャットルームの概念全体が実際にサーバー上に存在するだけなので)。
文書here。
問題はサーバーにsocket_idがあることです。クライアントは長い間行っているので、クライアント側からは何もアクセスできません。 – Cisplatin
@ Xenon - クライアントがなくなった場合、ソケットはすでに切断されていて、切断されたソケットは自動的にすべての部屋から削除されます。クライアントがまだ接続されている場合、socketidを使用してソケットを検索し、見つかったソケットで 'socket.leave()'を呼び出すことができます。具体的なコーディングヘルプが必要な場合は、コードの関連部分を表示してください。 – jfriend00
@Xenon - サーバ上では、 'var socket = io.sockets.connected [socket_id]'を使ってソケットIDを使って特定のソケットを検索することができます。ソケットを使用して 'socket.leave(" xxx) "を実行することはできますが、ソケットが切断されていれば、データ構造にはなく、すべての部屋からすでに削除されています。 – jfriend00