UNPKG

@mangar2/mqttclient

Version:

communicates with a MQTT-Style HTTP broker

246 lines (162 loc) 7.18 kB
<!-- This file is generated by jsmddoc version 0.1 --> # Abstract Provides a standard client to communicate with the mqtt broker ## Contents - [Meta](#Meta) - [Type definitions](#Type-definitions) - [Class MqttClient](#Class-MqttClient) - [Parameters](#MqttClient-Parameters) - [Members](#MqttClient-Members) - [Methods](#MqttClient-Methods) - [_createMemoryUsageMessage](#_createMemoryUsageMessage) - [close](#close) - [isShuttingDown](#isShuttingDown) - [on](#on) - [publish](#publish) - [reconnect](#reconnect) - [registerCloseFunction](#registerCloseFunction) - [registerRecipient](#registerRecipient) - [registerSender](#registerSender) - [run](#run) - [updateSubscriptions](#updateSubscriptions) ## Meta | | | | --- | --- | | **File** | mqttclient.js | | **Abstract** | Provides a standard client to communicate with the mqtt broker | | **Author** | Volker Böhm | | **Copyright** | Copyright ( c ) 2020 Volker Böhm | | **License** | This software is licensed under the GNU LESSER GENERAL PUBLIC LICENSE Version 3 . It is furnished "as is" , without any support , and with no warranty , express or implied , as to its usefulness for any purpose . | ## Type definitions ### LogPattern {Object} | Name | Type | Description | | ---- | ---- | ------- | | `topic` | `string` | log topic pattern | | | `module` | `string` | module to log , "send" , "receive" or "all" ( for all modules ) | | | `level` | `number` | log level for the pattern | | ## Callback definitions ### PollCallback Callback to retrieve messages to be sent to the mqtt broker #### PollCallback returns | Type | Description | | ---- | ----------- | | `Array.<Message>, Message` | messages to send to the broker | ## Class MqttClient `new MqttClient(options)` Creates a standard mqtt client , connects and subscribes to the broker ### MqttClient Parameters | Name | Type | Description | | ---------- | ------------ | ----------------- | | `options` | `Object` | options to provide for connection | | #### options properties | Name | Type | Attribute | Default | Description | | ---------- | ------------ | ------------ | ------------ | ----------------- | | `clientId` | `string` | | | unique id of the client | | | `broker` | `Object` | | | information of the broker to connect to | | | `listener` | `number` | | | port this client will listen to | | | `version` | `string` | optional | '1 . 0' | interface version | | | `keepAliveInSeconds` | `string` | optional | | connection keep alive time in seconds | | | `clean` | `boolean` | optional | true | clean the broker session on disconnect | | | `retry` | `number` | | | amount of retries to send messages to the broker | | | `log` | `Array.<LogPattern>` | | | logging settings | | #### broker properties | Name | Type | Description | | ---------- | ------------ | ----------------- | | `host` | `string` | hostname of the broker | | | `port` | `number` | port of the broker | | ### MqttClient Members | Name | Type | description | | ------------ | ------------ | ------------ | | `connected` | `boolean` | Connection status . true , iff connected | | `token` | `Object.<send:string, receive:string>` | Send and receive token to be used to communicate with the mqtt broker | | `version` | `string` | Gets/Sets the interface version to use | ### MqttClient Methods #### _createMemoryUsageMessage `_createMemoryUsageMessage () => {Message}` Creates a message showing the memory usage ##### _createMemoryUsageMessage returns | Type | Description | | ---- | ----------- | | `Message` | the memory usage message with the topic $SYS/ [ clientId ] /memory usage | #### close `async close ()` closes the client by shutting down all services and loops #### isShuttingDown `isShuttingDown () => {boolean}` checks , if the client is shutting down . Every loop must stop once isShuttingDown is true ##### isShuttingDown returns | Type | Description | | ---- | ----------- | | `boolean` | true , iff shutting down | #### on `on (event, callback)` Sets a callback . ##### on Parameters | Name | Type | Description | | ---------- | ------------ | ----------------- | | `event` | `string` | supports 'shutdown' | | | `callback` | `function` | | | ##### on throws | Type | Description | | ---- | ----------- | | `Error` | if the event is not supported | | `Error` | if the callback is not 'function' | #### publish `publish (message, serviceName)` Publishes a message to the broker ##### publish Parameters | Name | Type | Description | | ---------- | ------------ | ----------------- | | `message` | `Message` | message to publish | | | `serviceName` | `string` | name of the publishing service | | #### message properties | Name | Type | Description | | ---------- | ------------ | ----------------- | | `qos` | `number` | quality of service ( 0 , 1 , 2 ) | | | `retain` | `boolean` | true to create a retain message | | #### reconnect `async reconnect ()` Connects and subscribes to the broker #### registerCloseFunction `registerCloseFunction (closeFunction)` Registers close functions . It will be called when the client close function is called ##### registerCloseFunction Parameters | Name | Type | Description | | ---------- | ------------ | ----------------- | | `closeFunction` | `function` | function to be called on close commands | | #### registerRecipient `async registerRecipient (serviceName, subscriptions, callback)` Registeres a recipient ##### registerRecipient Parameters | Name | Type | Description | | ---------- | ------------ | ----------------- | | `serviceName` | `string` | name of the subscribing service | | | `subscriptions` | `Object` | subscription entries of format { topic : qos , topic : qos , . . . } | | | `callback` | `function` | function to send received messages to | | ##### registerRecipient throws | Type | Description | | ---- | ----------- | | `Error` | If subscriptions are not well formatted or callback is not a function | #### registerSender `registerSender (intervalInMilliseconds, callback)` Registeres a service sending messages in intervals . The service must provide a function ( callback ) without parameters returing an array of messages . The messages will then be sent to the broker ##### registerSender Parameters | Name | Type | Description | | ---------- | ------------ | ----------------- | | `intervalInMilliseconds` | `number` | interval in milliseconds to call the senders callback | | | `callback` | `PollCallback` | function to call | | #### run `async run ()` Starts the mqttclient . Opens the listener and connects to the broker #### updateSubscriptions `async updateSubscriptions (serviceName, subscriptions)` Updates the subscriptions ##### updateSubscriptions Parameters | Name | Type | Description | | ---------- | ------------ | ----------------- | | `serviceName` | `string` | name of the subscribing service | | | `subscriptions` | `Object` | subscription entries of format { topic : qos , topic : qos , . . . } | | ##### updateSubscriptions throws | Type | Description | | ---- | ----------- | | `Error` | If subscriptions are not well formatted |