Процесс узла зависает при сохранении многих экземпляров pubnub в памяти - PullRequest
0 голосов
/ 08 июня 2018

При нагрузочном тестировании программы, которую я использовал pubnub для создания какой-либо интеграции, я отправлял около 2000 запросов, и при каждом запросе экземпляр pubnub создавался с разными пабами, добавлялись суб-ключи и подписка на канал и слушателей, но через некоторое время, когда есть сетьпроблема pubnub выбрасывает ошибку зависания сокета, и память начинает работать, и в конечном итоге процесс завершается, хотя я уничтожаю объект pubnub при сбое в подписке.

class pubnub{
  private config;
  private pubnub;
  constructor(options){
    this.config = options
  }
  register(callback) {
    let timetoken = null;
    this.pubnub = new Pubnub({
      publish_key: options.publish_key,
      subscribe_key: options.subscribe_key,
      ssl: true,
      keepAlive: true
    });

    this.pubnub.addListener({
      message: function (m) {
        // console.log('----------------- ', m);
        if (timetoken !== m.timetoken) {
          timetoken = m.timetoken;
        }
      },
      status: function (m) {
        console.log(m);
          if (m && m.error === true) {
            this.pubnub.destroy(true);  
            return callback(m.errorData);
          }
          callback(null, true);
        }
      }
    });


    this.pubnub.subscribe({
      channels: option.channels
    });
  }
}
...