我有一个node.js应用程序,可以向用户“传输”推文。目前,它只是在Twitter上搜索一个硬编码字符串,但我想允许用户在URL中配置它(例如访问/?q=stackoverflow
)。
目前,我的代码看起来有点像这样:
app.get('/', function (req, res) {
// page rendering skipped
io.sockets.on('connection', function (socket) {
twit.stream('user', {track: 'stackoverflow'}, function(stream) {
stream.on('data', function (data) {
socket.volatile.emit('tweet', data);
}
});
});
});
问题是,如何让每个用户都能看到不同的推文流同时?目前,它在单个浏览器选项卡中工作正常,但只要打开第二个选项卡就会崩溃 - 而且在socket.io内部的错误相当深。我在滥用它吗?
我还没有完全理解socket.io,所以这可能是问题所在。
提前致谢!
答案 0 :(得分:0)
每次有新请求进入时,您都在使用io.sockets.on重新定义连接回调 - 在io对象的初始化语句之后,您应该将该代码块移到app.get之外。