以下是app.js的一部分,它与客户端
有套接字连接io.sockets.on('connection', function (soc) {
soc.emit('news', { status: 'connected' });
});
我想要做的是访问连接闭包之外的soc var,就像这样
io.sockets.on('connection', function (soc) {
do something magical here so I can access soc from outside
});
soc.emit('news', { status: 'connected' });
需要添加哪些其他技术来存档此结构?
答案 0 :(得分:4)
您需要在服务器代码中引用socket io变量:
io.sockets.emit('news', { status: 'connected' });
所以在你的示例代码中,它看起来像这样:
io.sockets.on('connection', function (soc) {
emit();
});
function emit(){
io.sockets.emit('news', { status: 'connected' });
}
答案 1 :(得分:0)
也许你可以尝试这样的事情:
var foo;
io.on('connection', function(soc){
foo = new Foo(soc);
});
function Foo (socket){
this.emit = function () {
if(socket)
{
socket.emit('msg');
}
}
}
连接某人后,您可以拨打foo.emit();
这个答案可能对您有所帮助: Can't emit from method defined outside of socket connection