2016-04-05 27 views

回答

0

從客戶端,您發送自己的消息到服務器,並要求服務器從房間中刪除它。服務器然後可以使用socket.leave("someRoom")從給定的房間中移除該套接字。客戶不能自己加入或離開房間。加入和離開房間必須由服務器完成(因爲聊天室的整個概念只存在於服務器上)。

文檔here

+0

問題是我有一個socket_id在服務器上。客戶已經很久了,所以我無法從客戶端訪問任何東西。 – Cisplatin

+0

@Xenon - 如果客戶端消失了,那麼套接字應該已經斷開,並且斷開的套接字會自動從任何房間中移除。如果客戶端仍然連接,則可以使用socketid查找套接字,然後在您找到的套接字上調用'socket.leave()'。如果您想要更具體的編碼幫助,請向我們展示您的代碼的相關部分。 – jfriend00

+0

@Xenon - 在服務器上,您可以使用'var socket = io.sockets.connected [socket_id]'使用套接字ID查找特定的套接字。然後,你可以使用該套接字來執行'socket.leave(「xxx)',但是,如果套接字斷開連接,它將不在數據結構中並且已經從所有房間中移除。 – jfriend00