2013-04-12 5 views
0

현재 동일한 연결에서 동시에 두 개의 트랙을 스트리밍하려고합니다. 문제는 트위터가 오류 코드 7로 거부하는 두 번째 스트림에 대한 새 연결이 열리는 것입니다. , 트위터 트위터가 가장 오래된 연결을 던져 최신에 대한 방법을 만들기 위해, 내가 이것을 방지하기 위해 programatically 할 수있는 일이 무엇입니까? Node.js 및 Twitter 스트리밍 API

내가에만 IP 주소 당 하나의 연결을 받아 들일 것입니다

var request = oa.get("https://stream.twitter.com/1.1/statuses/filter.json?track=tweet1", access_token, access_token_secret); 

request.addListener('response', function (response) { 

    response.setEncoding('utf8'); 

    response.addListener('data', function (chunk) { 
     var theTweets = JSON.parse(chunk); 
     console.log(theTweets); 
     MongoClient.connect("mongodb://localhost:27017/db", function(error, database) { 
      var collection = database.collection('coll'); 
      collection.insert(theTweets, function(err, result) {}); 
     });  
    }); 

    response.addListener('end', function() { 
     console.log('--- END ---'); 
    }); 

}); 


var requestTweet2 = oa.get("https://stream.twitter.com/1.1/statuses/filter.json?track=tweet2", access_token, access_token_secret); 

requestTweet2.addListener('response', function (response) { 

    response.setEncoding('utf8'); 

    response.addListener('data', function (chunk) { 
     var theTweets = JSON.parse(chunk); 

     MongoClient.connect("mongodb://localhost:27017/db", function(error, database) { 
      var collection = database.collection('coll'); 
      collection.insert(theTweets, function(err, result) {}); 
     });  
    }); 

    response.addListener('end', function() { 
     console.log('--- END ---'); 
    }); 

}); 
requestTweet2.end(); 
request.end(); 

답변

1

트위터 공공 스트림을 사용하고있는 코드입니다. 이 documented here을 찾을 수 있습니다.

각 계정은 가장 오래된 연결이 끊어 원인이 될 것입니다 더 동일한 계정 자격 증명을 두 번 이상 공공 스트림에 하나 개의 서 대중 엔드 포인트에 대한 연결 및 연결을 만들 수 있습니다.

대체 방법으로 수신 된 트윗을 인증 된 사용자의 계정으로 제한하는 user stream을 사용할 수 있습니다.