2012-04-06 22 views
5

My sio = require('socket.io').listen(app) jest w moim pliku server.js, ale dzwonię metodę w bibliotece, że chciałby przesunąć wiadomość do klienta ... powiedzmy api.user.pushToClient()Korzystanie socket.io z modułu

Jak czy jestem w stanie uzyskać stamtąd numer sio.sockets? Być może moja struktura jest niepoprawna?

strukturze katalogu:

server.js

api

|--user.js

|--another.js

+0

Czy należy zadeklarować sio jako zmienną? W jaki sposób JavaScript obsługuje sio bez słowa kluczowego var? – supertopi

Odpowiedz

11

w server.js dołączeniu tego linii

module.exports.sio = sio; 

w api/user.js

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

Albo ja źle zrozumiał pytanie?

+0

To może być coś, czego szukałem. Wypróbuję to, kiedy dostanę szansę. Dzięki. – Mike

+2

Więc kiedy używam sio. jest przekazywany przez referencję z serwera server.js? – Mike

-1

Z tego pytania zrozumiałem, że chcesz wiedzieć, jak używać socketIO z modułem węzła. Opierając się na moim zrozumieniu, możesz go użyć jak poniżej: Najpierw zainstaluj moduł gniazd lokalnie za pomocą npm, uruchamiając "gniazdo instalacyjne $ npm". "Polecenie" dla Windows.

Dodaj skrypt do swojej strony HTML:

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

teraz Dodaj var io = require ('socket.io'); do twojego serwera lub pliku js, gdzie będziesz go używał.

Następnie możesz mieć kod uruchamiania serwera nasłuchiwać tego serwera i po podłączeniu go wykonać opcje dla każdego zdarzenia.

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