我开发了一个非常简单的节点应用程序,我使用“Sokect.IO”来使用来自特定Twitter帐户的“ntwitter”来传输推文。
所以当有新的推文时,我就有了这段代码:
twit.stream('user', {track:'KITKAT'}, function(stream) {
stream.on('data', function (data) {
try{
var tweet = {};
tweet.name = data.user.name;
tweet.avatar = data.user.profile_image_url;
tweet.content = data.text;
tweet.dateTime = moment(data.created_at).format('llll');
//console.log(tweet);
socketServer.sockets.emit("tweet", tweet);
} catch(e){
console.log("Error: " + e);
}
});
});
socketServer.sockets.on("connection", function(socket){
console.log("new socket");
var origen = socket.handshake.address.address;
if(origen == "127.0.0.1")
return;
socket.emit("connection", "connection refuse: " + origen);
socket.disconnect();
});
“问题”是,即使网站上没有用户正在观看推文,也会尝试流式传输新的推文。
如果仅在我连接用户时才能获取推文,我该如何限制?
您可以看到我正在做的事情的示例:http://juanjardim.com/work/node
由于
答案 0 :(得分:1)
你需要存储你的连接然后迭代一个对象ou数组以发出推文,如果没有连接存储你的循环将无效检查这个问题:Nodejs, clients not always receiving server messages