我正在尝试 node.js 和 socket.io。我不想用来删除 ping 功能,我必须从我的服务器获取更新。这是我正在做的示例代码:
var app = require('http').createServer(),
io = require('socket.io').listen(app),
cp = require('child_process');
app.listen(8080);
//I check a global value for all the connected users from the php command line
var t = setInterval(function(){
cp.exec('/usr/bin/php /Users/crear/Projects/MandaFree/symfony api:getRemainingMessages',
function(err, stdout){
if (err) {
io.sockets.emit('error', 'An error ocurred while running child process.');
} else {
io.sockets.emit('change', stdout);
}
console.log('Remaining messages: ' + stdout);
});
}, 3000);
var remaining = io.of('/getRemainingMessages')
.on('connection', function(socket){
socket.on('disconnect', function(){});
});
Run Code Online (Sandbox Code Playgroud)
这里的问题是,当我调用 io.sockets.emit() 时,调试控制台告诉我它正在做某事,但看起来它没有到达客户端。因为他们什么都不做。
我曾经为每个连接的客户端设置一个间隔,当我使用 socket.emit() …