При нагрузочном тестировании программы, которую я использовал 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
});
}
}