Advertisement
dragonbane

Massive Memory Leak

Sep 29th, 2020 (edited)
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const { Observable } = require('rxjs');
  2. var socketObservable;
  3.  
  4. function socketErrorHandling(socket, proxy) {
  5.  
  6.   socketObservable = new Observable(observer => {
  7.  
  8.     socket.on('error', (err) => {
  9.       console.log("[loadBalancer] Socket Error:", proxy.host, err);
  10.       observer.next("socket_error");
  11.     });
  12.  
  13.     socket.on('connect_timeout', () => {
  14.       console.log("[loadBalancer] Socket connection timeout:", proxy.host);
  15.       observer.next("socket_timeout");
  16.     });
  17.  
  18.     socket.on('reconnect_error', (err) => {
  19.       console.log("[loadBalancer] Socket reconnect error:", proxy.host, err);
  20.       observer.next("socket_error");
  21.     });
  22.  
  23.     socket.on('rate_limited', () => {
  24.       console.log("[loadBalancer] Socket rate limited:", proxy.host);
  25.       observer.next("rate_limited");
  26.     });
  27.   });
  28. }
  29.  
  30. function emitToSocketAndAwaitResponse(socket, socketObservable, fullEndpoint, dataObj, watchedEvents) {
  31.  
  32.   return new Promise(function (resolve, reject) {
  33.  
  34.     let sub = socketObservable.subscribe(() => {});
  35.     sub.unsubscribe()
  36.  
  37.     socket.emit(fullEndpoint, dataObj);
  38.  
  39.     socket.once(watchedEvents[0], (response) => { //Success;
  40.       resolve(response);
  41.     });
  42.   });
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement