2016-04-30 3 views

Antwort

0

Ich habe gestern eine ähnliche Frage gestellt und es scheint, dass Ihre auch meiner ähnlich ist, hier ist, was ich implementieren werde.

Vorausgesetzt, dass Sie mehrere Instanzen haben, die an verschiedenen Ports funktionieren werden, können sie nicht direkt miteinander kommunizieren und Websocket Funktionalität bricht.

Es scheint, dass there are multiple solutions to this (sticky Sitzungen vs mit der Pub/Sub-Funktionalität von Redis), wählte ich Redis. Dafür gibt es ein Modul namens socket.io-redis. Sie brauchen auch emitter module, es ist hier.

Wenn Sie diese Route wählen, egal wie viele Server (mehrere Server mit mehreren Instanzen) ODER viele Instanzen auf einem einzelnen Server Sie Ihre App ausführen, wird es dank Redis problemlos funktionieren.

Zumindest weiß ich das jetzt, habe ein paar Tage gesucht, habe es noch nicht ausprobiert.

Nicht zu vergessen, Sie können Nginx für den Lastenausgleich verwenden, wie unten. (Kopiert von socket.io docs)

upstream io_nodes { 
    ip_hash; 
    server 127.0.0.1:6001; 
    server 127.0.0.1:6002; 
    server 127.0.0.1:6003; 
    server 127.0.0.1:6004; 
} 
+0

schließlich zur Schaffung einer anderen Http in bootstrap.js endete var customAppServer = http.createServer (sails.hooks.http.app); var customAppSocket = io (customAppServer); customAppServer.listen ('3001'); module.exports.customAppSocket = customAppSocket; customAppSocket.on ('Verbindung', Funktion (Socket)) { sails.config.customRoutes.setListeners (Socket); socket.emit ('verbunden', {Hallo: 'Welt'}); }); – Upasana