Ich habe eine bestimmte socket_id, die ich aus einem Raum in socket.io entfernen möchte. Gibt es einen einfachen Weg, dies zu tun? Der einzige Weg, den ich finden kann, ist die Verbindung mit dem Socket selbst.Socket.IO: Entfernen Sie bestimmte Socket-ID aus dem Raum?
-1
A
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.
Verwandte Themen
- 1. socket.io - emittieren SocketId (single-Client) nicht funktioniert
- 2. node.js socket.io App - Wie man jemanden aus dem Chat-Raum kickt?
- 3. socket.io Benutzer auf Raum manuell hinzufügen (node.js)
- 4. Socket.io 1.4.5 Wie senden Sie eine Nachricht an einen einzelnen Client in einem Raum?
- 5. Node.js und Socket.io Raum erstellen
- 6. socket.io aus dem Client senden
- 7. Entfernen Sie bestimmte Rechtecke aus einer ArrayList
- 8. Entfernen Sie bestimmte Objekte aus einer Liste
- 9. Entfernen Sie alle Fragmente aus dem Container
- 10. socket.io: Nachricht an bestimmten Raum senden (Clientseite)
- 11. Tensorflow Einbettung läuft aus dem Raum
- 12. Entfernen Sie stdClass Objekte aus dem Array
- 13. Git - Entfernen Sie Commit aus dem Verlauf
- 14. Entfernen Sie die Erweiterung aus dem Schlüssel
- 15. Entfernen Sie Schlüssel aus dem Wörterbuch
- 16. Entfernen Sie ähnliche Objekte aus dem Array
- 17. socket.io - Broadcast an bestimmte Benutzer
- 18. aus dem Text entfernen
- 19. Entfernen Raum in gemischten Inhaltselement ohne normalisieren-Raum mit
- 20. Wie Raum zwischen Widget entfernen?
- 21. entfernen bestimmte Indizes aus 2D-Array PHP
- 22. Entfernen Sie bestimmte Werte aus Array in PHP
- 23. Senden an einen bestimmten Client, der die Anfrage socket.io gestartet hat. Erhalten SocketId in Router
- 24. Socket.io keine Daten des Kunden einzigartigen Raum emittieren
- 25. Wie können Sie einfach bestimmte Wörter aus einer Textzeichenfolge entfernen?
- 26. Entfernen Sie String aus der Liste, wenn bestimmte Zeichen fehlen
- 27. Socket.IO abonnieren Sie mehrere Kanäle
- 28. Entfernen Sie Zeilen, die bestimmte Zeichenfolge enthalten
- 29. Entfernen Sie Elemente aus dem Vektor auf bestimmte Indizes, Reihenfolge spielt keine Rolle
- 30. Bestimmte Gegenstände aus Djangos Cache entfernen?
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
@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
@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