@mangar2/connections
v1.5.3
Published
Manages connections to a MQTT broker
Downloads
4
Maintainers
Readme
Abstract
Manages connections of the yaha Mqtt broker and provides functionality to receive/send messages from/to the managed connections in three service levels ( qos 0 , 1 , 2 )
Contents
Meta
| | | | --- | --- | | File | connections.js | | Abstract | Manages connections of the yaha Mqtt broker and provides functionality to receive/send messages from/to the managed connections in three service levels ( qos 0 , 1 , 2 ) | | 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 . |
Class Connections
new Connections(configuration)
Creates a connection object This class is part of an MQTT style broker . It manages connections to the broker .
Connections Parameters
| Name | Type | Description |
| ---------- | ------------ | ----------------- |
| configuration
| Object
| configuration | |
configuration properties
| Name | Type | Attribute | Default | Description |
| ---------- | ------------ | ------------ | ------------ | ----------------- |
| fileName
| string
| | | filename for persistence | |
| directory
| string
| | | directory ( file path ) for persistence | |
| replyTimeoutInMilliseconds
| nubmber
| optional | 10000 | timeout to wait for an answer of a http call | |
| inFlightWindow
| number
| optional | 1 | amount of qos 1 and qos 2 messages send for the same topic at the same time | |
| pubrelTimeoutInMilliseconds
| number
| optional | 24*3600*1000 | timout to wait for a corresponding pubrel message , default one day | |
| maxRetryCount
| number
| optional | 10 | amount of resend of messages before forcing a disconnect | |
| maxQueuSize
| number
| | | maximal amount of entries in a message queue | |
Connections Methods
acknowledgeMessage
acknowledgeMessage (queueEntry)
Acknowledges a message ( qos = 1 or 2 only )
acknowledgeMessage Parameters
| Name | Type | Description |
| ---------- | ------------ | ----------------- |
| queueEntry
| MessageQueueEntry
| entry of message queue acknowledged | |
checkToken
checkToken (token) => {string, undefined}
Checks , if a token corresponds to a client . Returns the client
checkToken Parameters
| Name | Type |
| ---------- | ------------ |
| token
| string
| |
checkToken throws
| Type | Description |
| ---- | ----------- |
| string
| error message |
checkToken returns
| Type | Description |
| ---- | ----------- |
| string, undefined
| clientId . |
cleanup
cleanup () => {Object}
Clean up jobs . Call regularly ( example once a minute ) Automatically disconnects clients not sending data until timeout
cleanup returns
| Type | Description |
| ---- | ----------- |
| Object
| list of clientId beeing automatically disconnected . An object with reason : string and keepAlive : number is included for each disconnected clientId |
connect
connect (clientId, host, port, clean, version, keepAlive) => {Object}
Connects a client ( Stores a connection to a client )
connect Parameters
| Name | Type | Attribute | Default | Description |
| ---------- | ------------ | ------------ | ------------ | ----------------- |
| clientId
| any
| | | id of the client | |
| host
| string
| | | host name | |
| port
| string
| | | port name | |
| clean
| bool
| | | true , if the connection will be cleaned on disconnect | |
| version
| string
| optional | '1 . 0' | client interface version | |
| keepAlive
| number
| optional | 3600000 | keep alive time in milliseconds . The broker will disconnect any client not sending messages in the keepAlive interval . Default is one hour | |
connect throws
| Type | Description |
| ---- | ----------- |
| Error
| |
connect returns
| Type | Description |
| ---- | ----------- |
| Object
| { mqttcode , present } present = = 1 , if an old session is recovered |
disconnect
disconnect (clientId)
Disconnects a client
disconnect Parameters
| Name | Type | Description |
| ---------- | ------------ | ----------------- |
| clientId
| string
| id of the client | |
disconnect throws
| Type | Description |
| ---- | ----------- |
| Error
| |
getAllMessagesToSend
getAllMessagesToSend () => {integer}
Gets all messages to send for all clients function to be called for each message . The function has the parameter QoS and message
getAllMessagesToSend returns
| Type | Description |
| ---- | ----------- |
| integer
| amount of messages sent |
isDuplicateQos2message
isDuplicateQos2message (clientId, topic, qos, dup, packetid)
Checks and remembers a qos2 message . Returns true , if the message is a duplicate
isDuplicateQos2message Parameters
| Name | Type | Description |
| ---------- | ------------ | ----------------- |
| clientId
| string
| id of the client | |
| topic
| string
| topic sent | |
| qos
| Object
| quality of service received from published headers | |
| dup
| boolean
| true , if the message is a duplicate | |
| packetid
| string
| id of the sender package | |
onPubrel
onPubrel (token, packetid)
Handles a pubrel message , deleting the entry from the qos2 queue
onPubrel Parameters
| Name | Type | Description |
| ---------- | ------------ | ----------------- |
| token
| string
| client send token | |
| packetid
| number
| unique identifier of the corresponding publish packet | |
persist
async persist ()
Persists all connections
publishMessage
publishMessage (payload, qos, retain)
Adds messages that needs to be published
publishMessage Parameters
| Name | Type | Description |
| ---------- | ------------ | ----------------- |
| payload
| Message
| message to add to a publish storage | |
| qos
| Object
| quality of service received from published headers | |
| retain
| boolean
| true , if the message should be retained for future subscribers | |
restoreFromFile
async restoreFromFile ()
Restores all clients from last valid saved file
setWill
setWill (clientId, will)
Sets the will message of a client
setWill Parameters
| Name | Type | Description |
| ---------- | ------------ | ----------------- |
| clientId
| string
| id of the client | |
| will
| Object
| will message configuration | |
will properties
| Name | Type | Description |
| ---------- | ------------ | ----------------- |
| qos
| number
| will message quality of service | |
| retain
| boolean
| true , if the will message is retained | |
| topic
| string
| topic of the will message | |
| value
| string, number
| value of the will message | |
subscribe
subscribe (clientId, topics) => {Array.<number>}
Subscribes to topics
subscribe Parameters
| Name | Type | Description |
| ---------- | ------------ | ----------------- |
| clientId
| string
| id of the client | |
| topics
| Object
| { QoS , topics } or { topic1 : QoS1 , topic2 : QoS2 , . . . } | |
subscribe returns
| Type | Description |
| ---- | ----------- |
| Array.<number>
| array of QoS values |
unsubscribe
unsubscribe (clientId, topics)
Unsubsribes to topics
unsubscribe Parameters
| Name | Type | Description |
| ---------- | ------------ | ----------------- |
| clientId
| string
| id of the client | |
| topics
| Array.<string>
| array of topics strings ( topic with wildchars '+' and '#' ) | |