2012-04-06 13 views
5

Mein sio = require('socket.io').listen(app) in meiner server.js Datei ist, aber ich bin eine Methode in einer Bibliothek aufrufen, die eine Nachricht an den Client pushen möchte ... sagen wir api.user.pushToClient()Mit socket.io aus einem Modul

Wie kann ich von dort auf sio.sockets zugreifen? Vielleicht ist meine Struktur nicht korrekt?

Ordnerstruktur:

server.js

api

|--user.js

|--another.js

+0

Sollten Sie sio als Variable deklarieren? Wie behandelt JavaScript sio ohne das Schlüsselwort var? – supertopi

Antwort

11

in server.js append Diese Linie

module.exports.sio = sio; 

in api/user.js

sio = require('../server').sio; 
sio.sockets.on ... 

Oder hat falsch verstehen ich die Frage?

+0

Das könnte das sein, wonach ich gesucht habe, ich werde es ausprobieren, wenn ich eine Chance bekomme. Vielen Dank. – Mike

+2

Also wenn ich das sio benutze. Wird es als Referenz von server.js übergeben? – Mike

-1

Was ich von der Frage zu verstehen ist, dass Sie wissen wollen, wie socketIO mit Knoten auf meinem Verständnis module.Based verwenden Sie es wie unten verwenden: Erste socketIO Modul lokal mit NPM installieren "$ npm Sockel installieren läuft. io "Befehl für Windows.

Skript hinzufügen, um Ihre HTML-Seite:

<script src="/socket.io/socket.io.js"></script> 

Jetzt var hinzufügen io = require ('socket.io'); zu Ihrem Server oder js-Datei, wo Sie es verwenden werden.

Dann können Sie Server-Start-Code auf diesen Server hören und bei der Verbindung von ihm die Optionen für jedes Ereignis ausführen.

var listener = io.listen(server); 
listener.sockets.on('connection', function(socket) { 
    socket.on('locationClick', function(data) { 
     // perform the function on receving locationClick event. 
    } 
}