Express、Socket.io、およびntwitterモジュールを使用して単純なノードアプリを構築しようとしているので、用語を検索するだけで(以下のreq.params.searchTerm)、ntwitterはそれを検索し、ソケットを介してストリームを出力します.io。
ただし、複数のウィンドウを開いたり、ウィンドウを閉じてすぐにウィンドウを開いたりすると、エラーが発生します。検索語が更新されない場合もあれば、実際に何らかのsocket.ioエラーがスローされる場合もあります。誰かがこれを行う正しい方法を明確にするか、私のエラーに光を当てることができますか?前もって感謝します。以下のコード。
var server = http.createServer(app);
var io = require('socket.io').listen(server);
server.listen(app.get('port'), function(){
console.log("Express server listening on port " + app.get('port'));
});
app.get('/:stream', function(req, res) {
res.render('stream', { title: 'Search Twitter | ' + req.params.searchTerm });
io.sockets.on('connection', function(socket) {
var publishFlag = true;
setInterval(function() {
publishFlag = true;
}, 1000);
twit.stream('statuses/filter', { track: [req.params.searchTerm] },
function(stream) {
stream.on('data', function(tweet) {
if(publishFlag) {
socket.emit('tweet', tweet);
publishFlag = false;
}
});
}
);
});
});