2014-06-17 4 views
24

Ich verwende socket.io und den Mean Stapel für eine Web-App. Ich habe den Server für Socket auf 3006 Port gestartet.io.on ('Verbindung', ...) vs io.sockets.on ('Verbindung', ...)

var http = require('http').createServer(app); 
http.listen(3006); 
var io = require('socket.io').listen(http); 

Beide scheinen auf Verbindung zu arbeiten.

io.on('connection', function (socket) { 
    console.log('Socket succesfully connected with id: '+socket.id); 
}); 

und ...

io.sockets.on('connection', function (socket) { 
    console.log('Socket succesfully connected with id: '+socket.id); 
}); 

Was ist der Unterschied zwischen io.on und io.sockets.on und welches sollte ich auf ersten Mal Verbindung verwenden ..?

Obwohl socket.on npm page verwendet io.on warum ist es für io.sockets.on

+1

Nicht 100%, aber ich denke, es ist nur ein Alias. Wie bei 'io.sockets.emit' und' io.emit' gesehen [hier] (http://socket.io/docs/server-api/#server#emit). –

+0

@Ben Fortune gut, wenn ich beide gleichzeitig habe, beide sind ausgeführt .. ist es falsch, io.on ('Verbindung', ...) zweimal zu benutzen ..? – Srinath

Antwort

7

Der Standard-Namespace arbeiten, die Socket.IO Clients standardmäßig verbinden ist: /. Es wird durch io.sockets oder einfach io (docs) identifiziert.

Dieses Beispiel aus der Dokumentation kopiert:

// the following two will emit to all the sockets connected to `/` 

io.sockets.emit('hi', 'everyone'); 

io.emit('hi', 'everyone');   // short form 

Ich nehme an, es ist das gleiche für ‚auf‘, wie es für ‚emittieren‘ ist: mit ‚io.sockets‘ gleichwertig ist mit ‚io‘ nur, es ist nur eine kürzere Form.

Um "Namespace" Ihre Sockets, bedeutet das Zuweisen von verschiedenen Endpunkten oder Pfaden (was nützlich sein kann).

Von einer Antwort auf diese Frage SO question:

„Socket.io macht die ganze Arbeit für Sie, als ob es zwei separate Instanzen, aber begrenzt noch die Informationen auf eine Verbindung, die ziemlich klug ist“

Verwandte Themen