2016-05-31 9 views
0

ユーザーが退室するイベントを待機します。私が調査したところでは、socket.roomsには、ソケットが入っている部屋が含まれているようです。しかし、ソケットからdisconnectイベントを聞くと、ソケットは接続を解除する前に部屋から出ていたようです。したがって、socket.roomsは、切断イベントの後に空のオブジェクトを生成します。私は部屋のオブジェクトの配列を持っているので、ユーザーが退室したときに部屋からユーザを削除したいので、ユーザがソケット切断イベントではなく部屋を離れるというイベントを特に聞く必要があります。ソケットIOは、ユーザーが退室したかどうかを検出します。

答えて

1

ユーザーは、サーバーを部屋から取り外すことなく、またはユーザーが接続を解除しても、部屋から去ることはできません。顧客は自分で部屋を出ることはできません。だから、ユーザーが部屋を離れるときを知るためには、あなた自身のコードをフックして部屋から取り除くだけでなく、disconnectイベントを聞く必要があります。

別の方法として、部屋から出ることができる唯一の方法は、自分のコードが部屋からそれらを削除する場合です。その特定の関数にフックして自分自身のデータ構造の更新をトリガーすることができますコードはそれらをチャットルームから削除します。

disconnectイベントでは、自分の部屋のデータ構造を維持している場合は、disconnectイベントが発生したときに見つけた部屋から特定のソケットを削除することができますあなたがそのソケットを見つけた部屋)。

関連する問題