/// import { EventEmitter } from 'events'; import { TLSSocket } from 'tls'; import MqttMessage from './MqttMessage'; import { MqttHeader } from './MqttPacket'; /** * Represents an encrypted real-time connection with facebook servers. * This class encapsulates all logic which handles communication using the propietary MQTT-like protocol. */ export default class MqttConnection extends EventEmitter { toSend: Buffer; socket: TLSSocket | null; lastHeader: MqttHeader | null; decodeBuffer: Buffer; connectMsg: any; _connected: boolean; queue: MqttMessage[]; lastConnectTimestamp: Date; constructor(); /** * Connects to Facebook mqtt servers. The promise is resolved when a secure TLS handshake is established. No CONNECT message is sent yet. */ connect(): Promise; readBuffer(data: Buffer): void; emitPacket(): void; writeMessage(message: MqttMessage): Promise; /** * Parses a MQTT header. * @param data The binary data representing the header. */ static readHeader(data: Buffer): MqttHeader; }