twitter-узел, обнаруживающий конец соединения

#node.js #twitter

#node.js #Twitter

Вопрос:

Я использую библиотеку twitter-node для node.js и это работает хорошо, однако у меня возникают некоторые незначительные трудности с отключениями.

Когда twitter отключает меня (я подключаюсь второй раз с того же сервера, чтобы принудительно отключить, чтобы я мог убедиться, что я справляюсь с такого рода проблемами), это не приводит к ошибке или событию завершения.Я думал, что с этим справится следующее:

 var twitter = new TwitterNode({
  user       : opts.account,
  password   : opts.password,
  track      : opts.hashtags,
  follow     : opts.follow
});

// omitted handlers for receiving tweets/deletes/limit info, but its there
twitter.addListener('error', function(error) {
  console.log('error occoured:'    error.message);
}).addListener('end', function(resp) {
    sys.puts("wave goodbye... "   resp.statusCode);
}).stream();
  

Однако я не получаю ни сообщения от «end», ни «error», когда я отключен. Кто-нибудь знаком с этой проблемой?

Ответ №1:

Для тех, у кого такая же проблема:

От twitter-узла нет уведомления, потому что он не обрабатывает событие закрытия библиотек https — перейдя в источник и добавив:

 response.on('close', function() { twit.emit('close',this); }
  

Библиотека теперь выдает событие закрытия, когда соединение закрывается удаленным сервером (twitter), и вы можете обработать его с помощью прослушивателя в вашем коде следующим образом:

 twitterStreamReader = new TwitterNode({...});
twitterStreamReader.addListener('close', function(resp) {
  sys.puts('The server connection has been closed. You may want to do something about that.');
});