有没有办法在保持时间控制的同时拆分和循环每个客户端?我需要发出所有推文,但每个推文之间有一段时间。到目前为止,这是抛出异常的代码:
var socketList = new Array();
io.on('connection',function(socket){
socketList.push(socket);
});
setInterval(function() {
socketList.forEach('tweet', function(tweet) {
io.sockets.emit('info', {tweet: tweet});
});
}, 2000);
此代码有效,但过快地推送推文:
io.on('connection', function (socket) {
stream.on('tweet', function(tweet) {
socket.emit('info', {tweet: tweet});
});
});
编辑此代码不会出现任何错误,但不会传输任何推文:
var io = require('socket.io').listen(server);
var stream = T.stream('statuses/filter', { track: 'lol' })
var socketList = new Array();
io.on('connection',function(socket){
socketList.push(socket);
});
function EmitTweets() {
stream.socketList.forEach('tweet', function(tweet) {
io.sockets.emit('info', {tweet: tweet});
});
setTimeout(EmitTweets, 1000);
}
不确定在哪里调用“stream”
答案 0 :(得分:0)
setInterval
是同步的。试试这个:
function emitTweets() {
socketList.forEach('tweet', function(tweet) {
io.sockets.emit('info', { tweet: tweet });
});
// this is the part that makes it repeat
setTimeout(emitTweetes, 2000);
}