在内存中保存许多pubnub实例时,节点进程挂起

时间:2018-06-08 05:51:24

标签: node.js sockets pubnub

当负载测试程序时,我正在使用pubnub来创建一些集成,我发送了大约2000个请求,并且在每个请求上,pubnub实例创建了不同的pub,子键和订阅的通道和监听器添加但是在有网络的一段时间之后问题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
    });
  }
}

0 个答案:

没有答案