繁体   English   中英

socket.io发出所有套接字不起作用

[英]socket.io emit to all sockets not working

我有以下代码:

/* 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
    });
});

运行此命令时,如果我使用井号标签进行鸣叫,则会收到日志,但不会发送套接字消息。 另外,随后的任何推文都没有执行任何操作,表明发出功能正在挂起。 在启动服务器的日志中,开始时我看到:

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

但是,仍然可以建立连接。 运行netstat -tulpn | grep :3010 netstat -tulpn | grep :3010不返回任何内容,因此我并没有真正了解问题所在。 我正在运行socket.io 0.9.16并表达3.5.1。

改变这条线

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

var port =8080; // for testing

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM