2012-04-06 4 views
5

My sio = require('socket.io').listen(app) là trong tập tin server.js của tôi, nhưng tôi gọi một phương pháp trong một thư viện mà muốn đẩy một thông điệp tới khách hàng ... nói api.user.pushToClient()Sử dụng socket.io từ một module

thế nào tôi có thể truy cập sio.sockets từ đó không? Có lẽ cấu trúc của tôi không chính xác?

thư mục cấu trúc:

server.js

api

|--user.js

|--another.js

+0

Nếu bạn khai báo sio là biến? JavaScript xử lý sio mà không có từ khóa var như thế nào? – supertopi

Trả lời

11

trong server.js append dòng này

module.exports.sio = sio; 

trong api/user.js

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

Hoặc tôi đã hiểu sai câu hỏi?

+0

Đó có thể là những gì tôi đang tìm kiếm, tôi sẽ thử điều đó khi tôi có cơ hội. Cảm ơn. – Mike

+2

Vì vậy, khi tôi sử dụng sio. nó có được thông qua tham chiếu từ server.js không? – Mike

-1

Điều tôi hiểu từ câu hỏi là bạn muốn biết cách sử dụng socketIO với mô-đun nút. Theo hiểu biết của tôi, bạn có thể sử dụng nó như sau: Mô-đun socketIO cài đặt đầu tiên cục bộ với npm bằng cách chạy "$ npm install socket. io "lệnh cho windows.

Thêm Script trang HTML của bạn:

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

Bây giờ thêm var io = require ('socket.io'); vào máy chủ hoặc tệp js của bạn nơi bạn sẽ sử dụng nó.

Sau đó, bạn có thể có mã khởi động máy chủ lắng nghe máy chủ đó và kết nối với nó thực hiện các tùy chọn cho bất kỳ sự kiện nào.

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