[英]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.