簡體   English   中英

如何收聽房間事件

[英]How to listen for Room events

為了明確起見,我知道客戶端應該向服務器發送諸如“ join-room”之類的消息以進行處理,這很好,並且我知道我可以對“ leave-room”執行相同的操作。

我想要的是實際監聽事件本身,因為如果客戶斷開連接,我需要向受影響的房間發送消息,因為當客戶斷開連接時,他們會自動離開所有房間。

所以我想要類似的東西;

socket.on('join' function() {
// send message
});

socket.on('leave' function() {
// send message
});

這樣,如果用戶關閉窗口(這將斷開客戶端的連接,然后觸發所有房間離開),我可以發送一條消息。

我正在使用最新的socket.io和redis適配器。

也;

列出特定套接字所在的所有房間的最有效方法是什么,因為從技術上講,我認為斷開事件應包含client_id,因此我可以手動執行此操作。

關鍵是清晰度和穩定性,盡管我願意接受其他方法(必須仍然使用socket.io)。

謝謝

因此,如果我正確理解了您的主要問題:您想監聽實現本身中加入和離開房間的事件,以使socket.join(room_id)應該觸發您想監聽的事件。

問題是文檔沒有提及監聽該事件的任何方法。 實際上, 實現本身未顯示加入會議室時觸發事件的跡象。 我的猜測是,您將必須實現join_room/leave_room系統來進行處理。

至於子問題,套接字對象包含一個稱為rooms的數組,因此socket.rooms包含套接字當前位於的所有房間。

這可能是您要尋找的:

socket.on('disconnect', function() { for(var room in socket.rooms) { //do stuff before the client close the connection and leave the rooms } });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM