Synchronet v3.19b-Win32 (install) has been released (Jan-2022).

You can donate to the Synchronet project using PayPal.

This is an old revision of the document!


Table of Contents

Synchronet MQTT Topic Naming and Payload Scheme

Synchronet v3.20 can publish and subscribe to message “topics” on a configured MQTT broker. Synchronet message topics start with “sbbs/BBS-ID/” where BBS-ID is the Synchronet BBS QWK-ID.

All message contents contain just plain text (US-ASCII characters). Numeric values, unless otherwise are specified, are represented in US-ASCII decimal characters.

Nodes

BBS terminal server nodes can be monitored and controlled via MQTT.

Under the sbbs/BBS-ID/ hierarchy, you'll find a sub-topic for each BBS node along with a total node count, for example:

  • node1/
  • node2/
  • node3/
  • node4/
  • node_count = 4

Messages are not published directly to node topics, but rather sub-topics of each node topic:

  • node#/status - tab-delimited node status fields
  • node#/terminal - tab-delimited current (or last) connected-terminal definition
  • node#/output - live output to connected-terminal (for spying)
  • node#/input - keyboard input to inject into connected-node
  • node#/laston - tab-delimited details of user to last logoff this node

Hosts

A single Synchronet BBS can be split across multiple instances running on separate inter-networked host computers. Each host will be represented with its own sub-topic of the “sbbs/BBS-ID/” topic. For example:

  • myWindowsPC/
  • rpi/
  • ubuntu/

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).

Servers

Each Synchronet instance (host) contains the following servers, each represented by its own sub-topic:

  • host/term/ - Terminal Server
  • host/mail/ - Mail Server
  • host/ftp/ - FTP Server
  • host/web/ - Web Server
  • host/srvc/ - Services

Additionally, timed events run by the Terminal Server are represented in the host/event/ sub-topic.

Publishing any message to the recycle sub-topic of any server topic will initiate a recycling of that server.

Each server topic has the following sub-topics for status reporting:

  • server/version
  • server/state - current state of the server (0-5 = Stopped, Initializing, Ready, Reloading, Stopping, Disconnected)
  • server/max_clients - maximum number of concurrent clients supported by this server
  • server/served - total clients served since server was started
  • server/error - last logged error message
  • server/error_count - total errors logged since server was started
  • server/client_count - current count of connected clients
  • server/client_list - tab-delimited details of all connected clients, one client per line

Log

Each server and “event” sub-topics has a log child topic where all messages of all log levels (severity) will be published as well as a grandchild topic for each log level (0-7, decreasing in severity) of logged messages. Log messages published directly to the “log” topic also have a MQTT v5 user property that specifies the log level of each message (for indication / sorting by the receiving client).

  • server/log
  • server/log/#

See Also