2016-04-05 9 views

Antwort

0

Vom Client senden Sie Ihre eigene Nachricht an den Server und bitten den Server, sie aus dem Raum zu entfernen. Der Server kann dann socket.leave("someRoom") verwenden, um diesen Socket aus einem bestimmten Raum zu entfernen. Kunden können nicht selbst beitreten oder Räume verlassen. Das Verbinden und Verlassen zu/von Räumen muss vom Server durchgeführt werden (weil die ganze Vorstellung von Chatrooms wirklich nur auf dem Server existiert).

Dokumentation here.

+0

Das Problem ist, ich habe eine Socket-ID auf dem Server. Der Client ist schon lange nicht mehr da, sodass ich von der Client-Seite aus nichts mehr erreichen kann. – Cisplatin

+0

@Xenon - Wenn der Client weg ist, sollte der Socket bereits getrennt werden und die getrennten Sockets werden automatisch aus allen Räumen entfernt. Wenn der Client noch verbunden ist, können Sie den Socket mit der Socket-ID suchen und dann 'socket.leave()' für den gefundenen Socket aufrufen. Zeigen Sie uns den relevanten Teil Ihres Codes, wenn Sie eine spezifischere Programmierhilfe benötigen. – jfriend00

+0

@Xenon - Auf dem Server können Sie 'var socket = io.sockets.connected [socket_id]' verwenden, um einen bestimmten Socket mit der Socket-ID zu suchen. Sie können dann 'socket.leave (" xxx) "mit diesem Socket ausführen. Wenn der Socket jedoch getrennt ist, befindet er sich nicht in der Datenstruktur und wurde bereits aus allen Räumen entfernt. – jfriend00

Verwandte Themen