You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
232 lines
5.0 KiB
232 lines
5.0 KiB
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 | 5 | 3 |
|
protocolId?: 'MQTT' | 'MQIsdp' |
|
clean?: boolean |
|
keepalive?: number |
|
username?: string |
|
password?: Buffer |
|
will?: { |
|
topic: string |
|
payload: Buffer |
|
qos?: QoS |
|
retain?: boolean |
|
properties?: { |
|
willDelayInterval?: number, |
|
payloadFormatIndicator?: number, |
|
messageExpiryInterval?: number, |
|
contentType?: string, |
|
responseTopic?: string, |
|
correlationData?: Buffer, |
|
userProperties?: Object |
|
} |
|
} |
|
properties?: { |
|
sessionExpiryInterval?: number, |
|
receiveMaximum?: number, |
|
maximumPacketSize?: number, |
|
topicAliasMaximum?: number, |
|
requestResponseInformation?: boolean, |
|
requestProblemInformation?: boolean, |
|
userProperties?: Object, |
|
authenticationMethod?: string, |
|
authenticationData?: Buffer |
|
} |
|
} |
|
|
|
export interface IPublishPacket extends IPacket { |
|
cmd: 'publish' |
|
qos: QoS |
|
dup: boolean |
|
retain: boolean |
|
topic: string |
|
payload: string | Buffer |
|
properties?: { |
|
payloadFormatIndicator?: boolean, |
|
messageExpiryInterval?: number, |
|
topicAlias?: number, |
|
responseTopic?: string, |
|
correlationData?: Buffer, |
|
userProperties?: Object, |
|
subscriptionIdentifier?: number, |
|
contentType?: string |
|
} |
|
} |
|
|
|
export interface IConnackPacket extends IPacket { |
|
cmd: 'connack' |
|
returnCode: number |
|
sessionPresent: boolean |
|
properties?: { |
|
sessionExpiryInterval?: number, |
|
receiveMaximum?: number, |
|
maximumQoS?: number, |
|
retainAvailable?: boolean, |
|
maximumPacketSize?: number, |
|
assignedClientIdentifier?: string, |
|
topicAliasMaximum?: number, |
|
reasonString?: string, |
|
userProperties?: Object, |
|
wildcardSubscriptionAvailable?: boolean, |
|
subscriptionIdentifiersAvailable?: boolean, |
|
sharedSubscriptionAvailable?: boolean, |
|
serverKeepAlive?: number, |
|
responseInformation?: string, |
|
serverReference?: string, |
|
authenticationMethod?: string, |
|
authenticationData?: Buffer |
|
} |
|
} |
|
|
|
export interface ISubscription { |
|
topic: string |
|
qos: QoS, |
|
nl?: boolean, |
|
rap?: boolean, |
|
rh?: number |
|
} |
|
|
|
export interface ISubscribePacket extends IPacket { |
|
cmd: 'subscribe' |
|
subscriptions: ISubscription[], |
|
properties?: { |
|
reasonString?: string, |
|
userProperties?: Object |
|
} |
|
} |
|
|
|
export interface ISubackPacket extends IPacket { |
|
cmd: 'suback', |
|
properties?: { |
|
reasonString?: string, |
|
userProperties?: Object |
|
}, |
|
granted: number[] | Object[] |
|
} |
|
|
|
export interface IUnsubscribePacket extends IPacket { |
|
cmd: 'unsubscribe', |
|
properties?: { |
|
reasonString?: string, |
|
userProperties?: Object |
|
}, |
|
unsubscriptions: string[] |
|
} |
|
|
|
export interface IUnsubackPacket extends IPacket { |
|
cmd: 'unsuback', |
|
properties?: { |
|
reasonString?: string, |
|
userProperties?: Object |
|
} |
|
} |
|
|
|
export interface IPubackPacket extends IPacket { |
|
cmd: 'puback', |
|
properties?: { |
|
reasonString?: string, |
|
userProperties?: Object |
|
} |
|
} |
|
|
|
export interface IPubcompPacket extends IPacket { |
|
cmd: 'pubcomp', |
|
properties?: { |
|
reasonString?: string, |
|
userProperties?: Object |
|
} |
|
} |
|
|
|
export interface IPubrelPacket extends IPacket { |
|
cmd: 'pubrel', |
|
properties?: { |
|
reasonString?: string, |
|
userProperties?: Object |
|
} |
|
} |
|
|
|
export interface IPubrecPacket extends IPacket { |
|
cmd: 'pubrec', |
|
properties?: { |
|
reasonString?: string, |
|
userProperties?: Object |
|
} |
|
} |
|
|
|
export interface IPingreqPacket extends IPacket { |
|
cmd: 'pingreq' |
|
} |
|
|
|
export interface IPingrespPacket extends IPacket { |
|
cmd: 'pingresp' |
|
} |
|
|
|
export interface IDisconnectPacket extends IPacket { |
|
cmd: 'disconnect', |
|
properties?: { |
|
sessionExpiryInterval?: number, |
|
reasonString?: string, |
|
userProperties?: Object, |
|
serverReference?: string |
|
} |
|
} |
|
|
|
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, opts?: Object): number |
|
} |
|
|
|
export declare function parser(opts?: Object): Parser |
|
|
|
export declare function generate(packet: Packet, opts?: Object): Buffer |
|
|
|
export declare function writeToStream(object: Packet, stream: WritableStream, opts?: Object): void |
|
|
|
export declare namespace writeToStream { |
|
let cacheNumbers: boolean |
|
}
|
|
|