socket.io发射到所有不工作的套接字

时间:2014-09-05 22:17:14

标签: javascript node.js sockets twitter

我有以下代码:

/* WEB SERVER AND SOCKET */
var express = require("express");
var app = express();
var port = process.env.PORT || 3010;
var io = require('socket.io').listen(app.listen(port));


io.configure(function () {
  io.set("transports", [
    'websocket'
    , 'xhr-polling'
    , 'flashsocket'
    , 'htmlfile'
    , 'jsonp-polling'
  ]);
  io.set("polling duration", 10);
});

/* TWITTER STUFF */

t.track('hashtag');
t.track('sometag');

t.on('tweet', function (tweet) {
    console.log('Tweet received from ' + tweet.user.name + ' (@' + tweet.user.screen_name + '): ' + tweet.text);
    io.sockets.emit('tweet', {
        user: {
            name: tweet.user.name,
            screen_name: tweet.user.screen_name,
            profile_pic: tweet.user.profile_image_url
        },
        text: tweet.text,
        time: tweet.created_at,
        photo: tweet.media.media_url
    });
});

运行时,如果我使用hashtag发推文,我会得到日志但没有发送套接字消息。此外,以下任何推文都不会做任何事情,这表明emit函数已挂起。在我启动服务器的日志中,在开始时我看到:

info  - socket.io started
info  - FlashPolicyFileServer received an error event: listen EADDRINUSE

但是,仍然可以建立连接。运行netstat -tulpn | grep :3010不返回任何内容,所以我真的不知道问题是什么。我正在运行socket.io 0.9.16并表达3.5.1。

1 个答案:

答案 0 :(得分:0)

更改此行

var port = process.env.PORT || 3010;

var port =8080; // for testing