0

Heroku で node.js の twitter ストリーミング アプリをセットアップしています。2 番目のクライアントが接続を確立するまで、完全に機能します。これは、誰かに見せるまでは予想もしていなかったことです:(

Twitter Stram API 機能に tweet-pipe を使用しています: https://github.com/peeinears/tweet-pipe

Heroku で Socket.IO を動作させるには、次の手順に従いました: https://devcenter.heroku.com/articles/using-socket-io-with-node-js-on-heroku

io.configure(function () { 
  io.set("transports", ["xhr-polling"]); 
  io.set("polling duration", 10); 
});

私のapp.jsファイルには

io.sockets.on('connection', function (socket) {
  tp.stream('statuses/filter', params, false, function (stream) {
    stream.on('tweet', function (tweet) {
      socket.emit('tweet', tweet );
    });
  });
});

繰り返しますが、これはすべて、別のクライアントがページにアクセスするまでうまく機能します. 次に、2 番目のクライアントが接続している間、元の接続が失われます。何かご意見は?私はSocket.IOのことに少し慣れていません。

4

2 に答える 2

0

コメントのチャドに感謝します。ライブでやや健康であるため、現在は問題なく動作しているようです。

io.sockets.on('connection', function (socket) {

  var tp = new TweetPipe({
    consumer_key: process.env.CONSUMER_KEY,
    consumer_secret: process.env.CONSUMER_SECRET,
    token: process.env.TOKEN,
    token_secret: process.env.TOKEN_SECRET
  });

  tp.stream('statuses/filter', params, false, function (stream) {
    stream.on('tweet', function (tweet) {
      io.sockets.emit('tweet', tweet );
    });
  });

});
于 2013-03-27T18:33:20.607 に答える
0

知る限り、Twitter ハンドルごとにアクティブなストリームは 1 つしか持てません。tp.stream2 番目のクライアントには使用できません。

ソース:

  1. https://dev.twitter.com/docs/streaming-apis/streams/public
  2. https://dev.twitter.com/discussions/921
于 2013-03-27T06:16:24.223 に答える