是否可以运行一些脚本,如果客户端连接传递参数,可以这样:
var io = require('socket.io').listen(http);
io.sockets.on('connection', function (client) {
console.log('Client connected');
var notifikacija = function (array) {
client.emit('populate', array);
}
});
///////////////////////////////////////////////////////////////////////
setInterval(function(){
var array = newArray();
array[0]='test';
notifikacija(array);
}, 2000);
现在它显示错误:notifikacija未定义。这是一个很棒的......
答案 0 :(得分:1)
notifikacija
函数是io.sockets.on处理程序范围的本地函数。您希望它是全局的,以便您可以在setInterval中访问它:
var notifikacija = function(){}; // just an empty function, in case it gets called before it has something to do
var io = require('socket.io').listen(http);
io.sockets.on('connection', function(client) {
console.log('Client connected');
notifikacija = function(array){ // once the client is available assign the function
client.emit('populate', array);
}
});
setInterval(function(){
var array = newArray();
array[0]='test';
notifikacija(array);
}, 2000);
这是a blog post with some more information on scope in Javascript。