0
我有以下代碼:socket.io發射到所有插座不工作
/* 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
不會返回任何內容,所以我沒有真正瞭解問題所在。我正在運行socket.io 0.9.16並表示3.5.1。
你看到的console.log輸出是簡單,它是從VAR牛逼聽衆的原因。 io.sockets可能不起作用(這就是你沒有爲該端口獲得netstat的原因) – 2014-09-05 22:43:55