/ / Sails.js - So richten Sie die Segel-Socket-Konfiguration ein - Javascript, node.js, sockets, socket.io, sails.js

Sails.js - Wie konfiguriere ich die sails socket config? - javascript, node.js, Sockets, socket.io, sails.js

Ich habe gestern Steckdosen, socket.io und Segel studiert und muss sagen, dass ich ziemlich verloren bin. Ich habe sie noch nie benutzt. Ich dachte, ich verstehe, aber ich bin nicht mehr sicher.

Ich habe meine Arbeit auf http://socket.io/get-started/chat/. Ich arbeite mit dem Framework Sails.js, das eine eigene Methode für Sockets usw. hinzufügt.

Im config/sockets.js wir haben ein onConnect und onDisconnect Methoden. Sehen https://github.com/balderdashy/sails-docs/blob/master/reference/sails.config/sails.config.sockets.md und (Quellcode) https://gist.github.com/Vadorequest/568afc14294f1448ab55

Ich werde Segel und socket.io vergleichen, nehmen wir diesen Code:

io.on("connection", function(socket){
console.log("a user connected");
socket.on("disconnect", function(){
console.log("user disconnected");
});
});

Wenn das socket.io geöffnet ist (Verbindung), wird definiert listeners mögen socket.on("disconnect") die auf eine ausgesendete Anfrage warten, vom Client oder vom Server aus socket.emit Methode.

Was ich dachte ist das die Segel onConnect ist äquivalent zu socket.io io.on(connection). Dann die Segel onDisconnect Methode ist äquivalent zu socket.on("disconnect")in der io.on(connection)Es wäre wie eine Abkürzung, um die richtige Art und Weise zu finden, um mit diesem bestimmten Ereignis umzugehen und seine Standards zu respektieren (die Methode beginnt mit on).

Aber ich habe meinen Code einem Freund gezeigt, der dies getan hatIch habe bereits mit socket.io und sails gearbeitet und er sagt mir, dass ich "falsch liege" und was ich tue, ist das Definieren eines Listeners innerhalb eines anderen Listeners, der (zumindest) zu einem chaotischen Durcheinander führen würde.

Ich würde gerne wissen, ob ich falsch verstanden habe, wie man Segelsteckdosen einrichtet.

Wenn ich falsch liege, werde ich weinen, aber ich werde darüber hinwegkommen.

Antworten:

3 für die Antwort № 1

Mein erster Eindruck war eigentlich richtig, also verstecken Sails das socket.io Für uns logisch sind diese beiden Codes äquivalent, der erste verwendet socket.io und die zweite mit Segel config/sockets.js Weg:

// Socket.io way
io.on("connection", function(socket){
socket.on("disconnect", function(){
console.log("user disconnected");
});
});

// Sails way (config/sockets.js), hide the socket.io logic. (Facade design pattern)
module.exports.sockets = {
onDisconnect: function(session, socket) {
console.log("user disconnected");
}
}

Genauso die Segel onConnect Methode ist äquivalent zu

io.on("connection", function(socket){
socket.on("connect", function() {
console.log("user connected");
});
});