0

我开发了一个非常简单的节点应用程序,我在其中使用“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

谢谢

4

1 回答 1

1

您需要将连接存储在其中,然后遍历对象 ou 数组以发出推文,如果没有连接存储,您的循环将无济于事检查这个问题:Nodejs,客户端并不总是接收服务器消息

于 2013-11-05T12:17:29.877 回答