import EventEmitter = NodeJS.EventEmitter
|
import WritableStream = NodeJS.WritableStream
|
|
export declare type QoS = 0 | 1 | 2
|
|
export declare type PacketCmd = 'connack' |
|
'connect' |
|
'disconnect' |
|
'pingreq' |
|
'pingresp' |
|
'puback' |
|
'pubcomp' |
|
'publish' |
|
'pubrel' |
|
'pubrec' |
|
'suback' |
|
'subscribe' |
|
'unsuback' |
|
'unsubscribe'
|
|
export interface IPacket {
|
cmd: PacketCmd
|
messageId?: number
|
length?: number
|
}
|
|
export interface IConnectPacket extends IPacket {
|
cmd: 'connect'
|
clientId: string
|
protocolVersion?: 4 | 3
|
protocolId?: 'MQTT' | 'MQIsdp'
|
clean?: boolean
|
keepalive?: number
|
username?: string
|
password?: Buffer
|
will?: {
|
topic: string
|
payload: Buffer
|
qos?: QoS
|
retain?: boolean
|
}
|
}
|
|
export interface IPublishPacket extends IPacket {
|
cmd: 'publish'
|
qos: QoS
|
dup: boolean
|
retain: boolean
|
topic: string
|
payload: string | Buffer
|
}
|
|
export interface IConnackPacket extends IPacket {
|
cmd: 'connack'
|
returnCode: number
|
sessionPresent: boolean
|
}
|
|
export interface ISubscription {
|
topic: string
|
qos: QoS
|
}
|
|
export interface ISubscribePacket extends IPacket {
|
cmd: 'subscribe'
|
subscriptions: ISubscription[]
|
}
|
|
export interface ISubackPacket extends IPacket {
|
cmd: 'suback'
|
granted: number[]
|
}
|
|
export interface IUnsubscribePacket extends IPacket {
|
cmd: 'unsubscribe'
|
unsubscriptions: string[]
|
}
|
|
export interface IUnsubackPacket extends IPacket {
|
cmd: 'unsuback'
|
}
|
|
export interface IPubackPacket extends IPacket {
|
cmd: 'puback'
|
}
|
|
export interface IPubcompPacket extends IPacket {
|
cmd: 'pubcomp'
|
}
|
|
export interface IPubrelPacket extends IPacket {
|
cmd: 'pubrel'
|
}
|
|
export interface IPubrecPacket extends IPacket {
|
cmd: 'pubrec'
|
}
|
|
export interface IPingreqPacket extends IPacket {
|
cmd: 'pingreq'
|
}
|
|
export interface IPingrespPacket extends IPacket {
|
cmd: 'pingresp'
|
}
|
|
export interface IDisconnectPacket extends IPacket {
|
cmd: 'disconnect'
|
}
|
|
export declare type Packet = IConnectPacket |
|
IPublishPacket |
|
IConnackPacket |
|
ISubscribePacket |
|
ISubackPacket |
|
IUnsubscribePacket |
|
IUnsubackPacket |
|
IPubackPacket |
|
IPubcompPacket |
|
IPubrelPacket |
|
IPingreqPacket |
|
IPingrespPacket |
|
IDisconnectPacket |
|
IPubrecPacket
|
|
export interface Parser extends EventEmitter {
|
on(event: 'packet', callback: (packet: Packet) => void): this
|
|
on(event: 'error', callback: (error: any) => void): this
|
|
parse(buffer: Buffer): number
|
}
|
|
export declare function parser(): Parser
|
|
export declare function generate(packet: Packet): Buffer
|
|
export declare function writeToStream(object: Packet, stream: WritableStream): void
|
|
export declare namespace writeToStream {
|
let cacheNumbers: boolean
|
}
|