2016-05-31 41 views
0

我想監聽用戶離開房間的事件。從我研究的內容來看,socket.rooms顯然包含套接字所在的房間。但是,當我從套接字偵聽disconnect事件時,顯然套接字在斷開之前離開了房間。因此,socket.rooms將在斷開連接事件後產生一個空對象。我需要專門聆聽用戶離開房間的事件,而不是套接字斷開事件,因爲我擁有一組房間物體,並希望在用戶離開房間時將其從房間中刪除。Socket IO檢測用戶是否離開房間

回答

1

如果沒有服務器將其從房間中刪除或用戶斷開連接,用戶將無法離開房間。客戶不能獨自離開房間。因此,要知道用戶何時離開房間,只需將自己的代碼掛鉤,即可將其從房間中移除,並且還可以監聽disconnect事件。

除了斷開連接之外,用戶可以離開房間的唯一方式是,如果您自己的代碼將它們從房間中移除,那麼您可以掛鉤該特定功能並觸發自己的數據結構更新代碼將它們從聊天室中刪除。

對於disconnect事件,如果您要維護您自己的房間數據結構,那麼您可以在發現disconnect事件時從任何房間中刪除給定的套接字(例如,搜索每個房間並將其從任何你找到那個插座的房間)。

相關問題