簡體   English   中英

Socket.io 房間創建和刪除事件

[英]Socket.io events on room creation and deletion

socket.io是否有創建和刪除房間相關的事件? 每當創建或刪除房間時,我想向所有客戶發出一個事件。

沒有創建和刪除房間的事件。 由於會議室僅在服務器上使用.join()創建,因此您可以創建自己的join函數並在任何地方調用它,並且可以在調用.join()之前檢查會議室是否已經存在。 如果尚不存在,那么現在就創建它。

您可以使用自己的函數對.leave()做類似的事情, .leave()函數在調用.leave()之后檢查房間是否仍然存在。 如果沒有,那么該房間剛剛被刪除。

僅供參考,您可以自己檢查代碼的工作方式。

這是.join()代碼,以及在適配器中.addAll()調用代碼

並且,實際的房間創建是基於以下內容

this.rooms[room] = this.rooms[room] || Room();

在任何地方都沒有觸發事件通知。

由於我需要維護與房間 state 同步的一些數據,我遇到了同樣的問題:如何知道房間何時被銷毀以便刪除我的關聯數據並避免 memory 泄漏?

根據官方文檔https://socket.io/fr/docs/v4/adapter/#api ,您可以輕松地對房間的生命周期執行一些操作,如下所示:

io.of("/").adapter.on("create-room", (room) => {/*your action*/}
io.of("/").adapter.on("delete-room", (room) => {/*your action*/}
io.of("/").adapter.on("join-room", (room) => {/*your action*/}
io.of("/").adapter.on("leave-room", (room) => {/*your action*/}

暫無
暫無

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

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