wsSend(socket, payload) {
    if (!this.connectionBySocket.has(socket)) {
      return;
    }

    if (socket.getBufferedAmount() < WS_PER_SOCKET_BACKPRESSURE_BUFFER_SIZE) {
      socket.cork(() => socket.send(payload));
    } else {
      const buffer = this.backpressureBuffer.get(socket);
      buffer.push(payload);

      /**
       * Client socket too slow: we need to close it
       *
       * If the socket is marked as a debugSession, we don't close it
       * the debugger might send a lot of messages and we don't want to
       * loose the connection while debugging and loose important information.
       */
      if (
        !socket.internal.debugSession &&
        buffer.length > WS_BACKPRESSURE_BUFFER_MAX_LENGTH
      ) {
        socket.end(WS_FORCED_TERMINATION_CODE, WS_BACKPRESSURE_MESSAGE);
      }
    }
  }
Sends a message immediately, or queue it up for later if backpressure built
up

@param  {uWS.WebSocket} socket
@param  {Buffer} payload