2017-06-13 2 views
0

Im beginnend mit node.js und socket.io.sind Socket-IO-Räume automatisch zerstört, wenn sie leer sind?

Ich habe 2 Fragen: - Wenn ein Raum leer ist, wird es automatisch unproduced destoyed? und wenn es nicht automatisch zerstört wird, nimmt es viele Ressourcen auf dem Server auf?

  • auf der Serverseite. Ist es der io Server oder der angeschlossene Socket, der die Daten übertragen soll?

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

Antwort

0

Der Raum wird von der Anordnung und der nodeJSs' V8 Garbage Collector beendet den Auftrag vollständig zu entfernen, den Raum vor RAM automatisch entfernt. Sie müssen sich darüber keine Sorgen machen. Denken Sie daran, dass alle Benutzer automatisch in einen Raum versetzt werden, wenn sie dem Server beitreten (die socket.id namens Raum). io.emit sollte verwendet werden, wenn Sie eine Nachricht vom Server an eine beliebige Person senden möchten, und socket.emit sollte verwendet werden, wenn Sie eine Nachricht nur an den Absender senden möchten. Weitere Informationen finden Sie auf dieser Antwort: https://stackoverflow.com/a/40829919/7868639

+0

Danke für die Aufklärung über die Nutzung der Zimmer, sehr gut erklärt! aber Sie sagen mir, dass ich nur die io.emit auf der Serverseite verwenden soll, aber in der Verbindung haben Sie "socket.to ('Spiel'). Emit ('Nachricht', 'das Spiel genießen');" aber wenn ich dies auf der Client-Seite getan habe, sagte es, dass es keine Funktion ist ... und auf der Serverseite funktioniert das gut. – lolplayer101

+0

Der Link, den ich verlassen habe, zeigt alle verfügbaren Arten der Kommunikation vom Server zum Client. Es gibt Verwendungen sowohl für socket.something als auch für io.etwas. Nichts davon ist falsch. Auf der Clientseite verwenden Sie immer socket.emit – itsundefined