Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 仅当客户端连接到服务器时,如何发送流tweet_Node.js_Twitter_Socket.io - Fatal编程技术网

Node.js 仅当客户端连接到服务器时,如何发送流tweet

Node.js 仅当客户端连接到服务器时,如何发送流tweet,node.js,twitter,socket.io,Node.js,Twitter,Socket.io,我开发了一个非常简单的节点应用程序,其中我使用“Sokect.IO”从特定的twitter帐户使用“ntwitter”来流式发送推文 因此,当有新的推特时,我有以下代码: twit.stream('user', {track:'KITKAT'}, function(stream) { stream.on('data', function (data) { try{ var tweet = {}; tweet.name = d

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

});
“问题”在于,即使网站上没有用户观看推文,用户也会尝试流式发送新推文

我如何限制这一点,以便仅当我有用户连接时才能获得推文

你可以看到我正在做的一个例子:


谢谢

您需要将连接存储在中,然后在对象ou数组上迭代以发出tweet,如果没有连接存储,则循环将不起任何作用检查此问题: