Socket.io不会stream式传输到多个连接

我正尝试向客户端发送推文,一切正常,只要有一个连接即可。 如果我在浏览器的一个选项卡中input推文,并在新选项卡中打开该页面,则第一个选项卡将停止接收新的推文,只有第二个选项卡会接收到这些推文。

服务器代码。

io.sockets.on('connection', function (socket) { var twitter = require('ntwitter'), util = require('util'), twit = new twitter({ consumer_key: '', consumer_secret: '', access_token_key: '', access_token_secret: '' }); twit.stream('statuses/filter', {'locations':'-124.46, 24.31, -66.57, 49.23'}, function(stream) { stream.on('data', function (data) { data.geo ? socket.emit('twitter', data) : '' }); }); 

客户代码:

 var socket = io.connect() socket.on('twitter', function (data) { //Do really awesome things. }); 

我究竟做错了什么? 它必须简单。 我无法想象它很难支持多个连接。

干杯

尝试将socket.emit更改为socket.emit

 io.sockets.on('connection', function (socket) { var twitter = require('ntwitter'), util = require('util'), twit = new twitter({ consumer_key: '', consumer_secret: '', access_token_key: '', access_token_secret: '' }); twit.stream('statuses/filter', {'locations':'-124.46, 24.31, -66.57, 49.23'}, function(stream) { stream.on('data', function (data) { data.geo ? sockets.emit('twitter', data) : '' }); }); 

或者,如果这不起作用,除了socket.emit之外添加socket.broadcast.emit ,如下所示:

 io.sockets.on('connection', function (socket) { var twitter = require('ntwitter'), util = require('util'), twit = new twitter({ consumer_key: '', consumer_secret: '', access_token_key: '', access_token_secret: '' }); twit.stream('statuses/filter', {'locations':'-124.46, 24.31, -66.57, 49.23'}, function(stream) { stream.on('data', function (data) { data.geo ? socket.emit('twitter', data) : '' data.geo ? socket.broadcast.emit('twitter', data) : '' }); });