Both sides previous revisionPrevious revisionNext revision | Previous revision |
ref:mqtt [2023/08/10 12:31] – [Control] Clarify that node flags can be cleared by publishing a "0" to their topics digital man | ref:mqtt [2024/07/11 18:37] (current) – [Servers] Add server/+/highwater topic digital man |
---|
Nodes can be controlled by publishing messages to the following topics: | Nodes can be controlled by publishing messages to the following topics: |
* sbbs/+/node/+/**input** - keyboard input to inject into connected-node | * sbbs/+/node/+/**input** - keyboard input to inject into connected-node |
| * sbbs/+/node/+/**msg** - send a short text message to the node (message should be terminated with a newline character) |
* sbbs/+/node/+/**set/status** - set the node's status value (to an integer value: "0" is waiting for connection, "5" is off-line) | * sbbs/+/node/+/**set/status** - set the node's status value (to an integer value: "0" is waiting for connection, "5" is off-line) |
* sbbs/+/node/+/**set/errors** - set the node's error counter value (to an integer value, e.g. "0" to clear the error counter) | * sbbs/+/node/+/**set/errors** - set the node's error counter value (to an integer value, e.g. "0" to clear the error counter) |
The control and monitoring of a specific Synchronet instance is done through this "host sub-topic" tree. | The control and monitoring of a specific Synchronet instance is done through this "host sub-topic" tree. |
| |
Publishing any message to the **recycle** sub-topic of any host topic will initiate a recycling of that host's servers (all of them). | ^ Host sub-topic ^ Description ^ |
| | recycle | Publishing any message to the **recycle** sub-topic of any host topic will initiate a recycling of that host's servers (all of them). | |
| | pause | Publishing any message to the **pause** sub-topic of any host topic will initiate pause that host's servers (all of them), preventing the acceptance of any new incoming client connections. | |
| | resume | Publishing any message to the **resume** sub-topic of any host topic will un-pause that host's servers (all of them), that we previously paused via the **pause** topic. | |
| |
===== Servers ===== | ===== Servers ===== |
| |
The //status// of each server is published to its server topic, for example: | The //status// of each server is published to its server topic, for example: |
sbbs/MYBBS/host/MYCOMPUTER/server/term = 2 ready 1/5 clients 223 served | sbbs/MYBBS/host/MYCOMPUTER/server/term = ready 1/5 clients 223 served |
| |
The numeric //state// (first field of status) for each server is 0-5 corresponding with Stopped, Initializing, Ready, Reloading, Stopping, and Disconnected. | The //state// (first field of status) for each server is one of: |
| * stopped |
| * initializing |
| * ready |
| * paused |
| * reloading |
| * stopping |
| * disconnected |
| |
The server status contains more details/statistics and is published more often when "High" Public Verbosity is enabled. | The server status contains more details/statistics and is published more often when "High" MQTT->Publish Verbosity is enabled in [[util:SCFG]]. |
| |
Publishing any message to the **recycle** sub-topic of any server topic will initiate a recycling of that server. | ^ Server sub-topic ^ Description ^ |
| | recycle | Publishing any message to the **recycle** sub-topic of any server topic will initiate a recycling of that server. | |
| | pause | Publishing any message to the **pause** sub-topic of any server topic will prevent that server from accepting any new incoming client connections. | |
| | resume | Publishing any message to the **resume** sub-topic of any server topic will un-pause that server, returning to the "ready" state, accepting incoming client connections. | |
| |
Each server topic has the following sub-topics for status reporting: | Each server topic has the following sub-topics for status reporting: |
| |
* sbbs/+/host/+/server/+/**version** | * sbbs/+/host/+/server/+/**version** - name, version/revision, and build date/time/tool of server |
* sbbs/+/host/+/server/+/**max_clients** - maximum number of concurrent clients supported by this server | * sbbs/+/host/+/server/+/**state/#** - server state change events |
| * sbbs/+/host/+/server/+/**client** - current count of connected clients and maximum number of concurrent clients supported by this server |
| * sbbs/+/host/+/server/+/**client/list** - tab-delimited details of all connected clients, one client per line |
| * sbbs/+/host/+/server/+/**client/action/#** - client actions (e.g. connect, disconnect) |
* sbbs/+/host/+/server/+/**served** - total clients served since server was started | * sbbs/+/host/+/server/+/**served** - total clients served since server was started |
| * sbbs/+/host/+/server/+/**highwater** - highest concurrent client count since server was started |
* sbbs/+/host/+/server/+/**error_count** - total errors logged since server was started | * sbbs/+/host/+/server/+/**error_count** - total errors logged since server was started |
* sbbs/+/host/+/server/+/**client_count** - current count of connected clients | |
* sbbs/+/host/+/server/+/**client_list** - tab-delimited details of all connected clients, one client per line | |
| |
==== Logs ==== | ==== Logs ==== |
Fields are tab-delimited and begin with a date/time stamp in ISO-8601 format. | Fields are tab-delimited and begin with a date/time stamp in ISO-8601 format. |
| |
| ===== Triggers ===== |
| |
| The Terminal Server's //event thread// can be instructed to executed Timed Events or initiate QWKnet call-outs by posting a message to the following topics: |
| * sbbs/+/**exec** - send the internal code of the timed event to execute (case-insensitive) |
| * sbbs/+/**call** - send the QWK-ID of the QWKnet node to force a call-out to (case-insensitive) |
===== See Also ===== | ===== See Also ===== |
* [[:ref:|ref index]] | * [[:ref:|ref index]] |