2012-04-06 19 views
5

Mi sio = require('socket.io').listen(app) está en mi archivo server.js, pero yo estoy llamando a un método en una biblioteca que le gustaría empujar un mensaje al cliente ... digamos api.user.pushToClient()socket.io de un módulo

Cómo ¿Puedo acceder al sio.sockets desde allí? Tal vez mi estructura es incorrecta?

estructura de carpetas:

server.js

api

|--user.js

|--another.js

+0

¿Debería declarar sio como una variable? ¿Cómo maneja JavaScript sio sin la palabra clave var? – supertopi

Respuesta

11

en server.js append esta línea

module.exports.sio = sio; 

en api/user.js

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

O qué he entendido mal la pregunta?

+0

Eso podría ser lo que estaba buscando, lo intentaré cuando tenga oportunidad. Gracias. – Mike

+2

Entonces cuando uso el sio. ¿se pasa por referencia desde server.js? – Mike

-1

Lo que entendí de la pregunta es si desea saber cómo usar el socketIO con el módulo de nodo. Según entiendo, puede usarlo de la siguiente manera: Primero instale localmente el módulo socketIO con npm ejecutando "$ npm install socket. io "comando para windows.

Añadir guión a su página HTML:

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

Ahora suma var io = require ('socket.io'); a su servidor o archivo js donde va a usarlo.

A continuación, puede hacer que el código de inicio del servidor escuche ese servidor y al conectarse realice las opciones para cualquier evento.

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