Beispiel #1
0
  send(packet) {
    if (!packet.id) {
      packet.id = shortid.generate();
    }

    packet.version = this.options.version || 2;

    const data = sjmp.serialize(packet);
    if (!data) {
      return Promise.reject(new Error('bad_packet'));
    }

    if (this.state !== keys.CLIENT_STATE_CONNECTED) {
      return new Promise((resolve, reject) => {
        this.stats.offline_sent++;
        this.pending.push({ data: data, callbacks: { resolve: resolve, reject: reject }});
      });
    }

    return new Promise((resolve, reject) => {
      if (this._onfly(data, { resolve: resolve, reject: reject })) {
        return;
      }

      this.socket.write(JSON.stringify(data));
      this.stats.sent++;

      this.callbacks.set(packet.id, {
        resource: packet.resource,
        callbacks: [{ resolve: resolve, reject: reject }]
      });
    });
  }
Beispiel #2
0
  send(packet) {
    if (!this.isReady()) {
      throw new Error('client not ready');
    }

    if (!packet.id) {
      packet.id = shortid.generate();
    }

    if (this._sockjs.send(sjmp.serialize(packet, true))) {
      this.emit('sent', packet);
    }
  }