2017-06-13 44 views
0

我從node.js和socket.io開始。套房io房間automaticaly銷燬如果是空的?

我有2個問題: - 當一個房間是空的時候,它會自動刪除重新啓動嗎? ,如果它不是自動銷燬的,它會佔用服務器上的很多資源嗎?

  • 在服務器端。它是應該傳輸數據的io服務器還是連接的套接字?

    socket.emit('doSomething'); 或 io.emit('doSomething');

回答

0

房間自動從陣列中移除,nodeJSs的V8垃圾收集器完成了從ram中完全移除房間的工作。你不必擔心這一點。請記住,所有用戶在加入服務器時都會自動進入房間(socket.id命名空間)。 io.emit應在您希望將消息從服​​務器發送給任何人時使用,當您只想將消息發送給發件人時應使用socket.emit。更多信息可以在這個答案找到:https://stackoverflow.com/a/40829919/7868639

+0

感謝您對房間使用的澄清,很好地解釋! 但你告訴我只在服務器端使用io.emit,但是在你有「socket.to('遊戲')的鏈接中。emit('message','享受遊戲');」但是當我在客戶端做到這一點時,它說它不是一個函數......而在服務器端,這工作正常。 – lolplayer101

+0

我離開的鏈接顯示了從服務器到客戶端進行通信的所有可用方式。對於socket.something和io.something都有用處。這沒有錯。在客戶端,你總是使用socket.emit – itsundefined