1
如果有標準socket.io
設置:在使用socket.io的node.js中,如何動態添加到套接字偵聽器?
var app = require('http').createServer().listen(80,'127.0.5.12'),
io = require('socket.io').listen(app);
session = require('./local_modules/session.js');
// creating a new websocket to keep the content updated without any AJAX request
io.sockets.on('connection', function(socket) {
// session, login, logout
socket.on('session', session.session.bind(socket));
socket.on('login', session.login.bind(socket));
socket.on('logout', session.logout.bind(socket));
// what to add new listener here!
});
在以後的程序,一旦它知道它想做的事,它希望新的功能添加到插座聽衆。例如,在'會話'中間可能希望添加'新東西':
exports.session = function(sid) {
var socket = this;
...
// everything cool, now want to add 'something-now' to socket
// do I simply - will something simple as this work?
socket.on('something-new', session.something_new.bind(socket));
}
exports.something_new = function(arg) {
}
這是正確的 - 它只是似乎錯了?
真的不清楚你想讓你的程序做什麼或錯誤。 – ebohlman 2012-07-08 09:27:49
你可以在函數參數中傳遞''socket'',或者將它們存儲在一個對象中(可以由用戶的會話ID鍵入,或者類似的東西)。 – 2012-07-08 09:29:27
@ebohlman沒有錯。現在正在監聽'會話','登錄'和'註銷'。想要擴展功能來監聽'whatever.func'的'something-new'。這有幫助嗎? – 2012-07-08 09:30:00