The request topic follows the format server/{serverNo}/{serviceName}/{version}/{topicSuffix}, where:
{serverNo} is the server number.{serviceName} is the service name.{version} is the API version, currently v1.{topicSuffix} may only contain letters, digits, and the -, / separators; it identifies a specific business function.For example, server/center-server/iot/v1/list-online-status is a valid request topic.
sub: Sub-topic, used only in relatively complex bidirectional communication scenarios; left empty otherwise. It distinguishes different business operations when the topic is the same.id: Session ID, a unique identifier used to distinguish different clients. An MQTT client ID must be supplied. The MQTT client ID generation rules are as follows:
user,{username},web,{sessionId}user,{username},app,{sessionId}device,{deviceNo},iot,{sessionId}device,{deviceNo},webrtc,{sessionId}server,{serverNo},file,{sessionId}server,{serverNo},iot,{sessionId}server,{serverNo},device,{sessionId}reply: MQTT response message topic path. This is an optional field, set only when response data is required; the responder returns the response data via this topic. This design eases integration for third-party systems, which may subscribe to topics according to their own conventions and use their own topic definitions. This field exists to support clients that lack MQTT 5.0 features (corresponding to Response Topic in MQTT 5.0).replyNumberMax: Maximum number of replies. This is an optional field, set only when response data must be returned more than once. The server restricts the range to 1 - 10; if empty, the default is 1.replyInterval: Reply interval (seconds). This is an optional field, set only when response data must be returned more than once. The server restricts the range to 1 - 10 seconds; if empty, the default is 1 second.token: Authentication token, used specifically to verify interface permissions and ensure legitimate, secure use of the interface.params: Request parameters. This is an optional field, set only when parameters need to be passed.{sessionId}: A randomly generated identifier string; it remains unchanged while the current program is running.{username}: The current login username.{deviceNo}: The device number.{serverNo}: The server number.Specified by the reply field in the request structure; if that field is empty, no reply is sent.
For example, user/admin/web/session-id-xxx/rx/resp/server/center-server/iot/v1/list-online-status. A third-party system may subscribe to topics according to its own conventions and use its own topic definitions.
sub: Sub-topic, used only in relatively complex bidirectional communication scenarios; left empty otherwise. It distinguishes different business operations when the topic is the same.id: Session ID, a unique identifier used to distinguish different clients. An MQTT client ID must be supplied. The MQTT client ID generation rules are as follows:
user,{username},web,{sessionId}user,{username},app,{sessionId}device,{deviceNo},iot,{sessionId}device,{deviceNo},webrtc,{sessionId}server,{serverNo},iot,{sessionId}server,{serverNo},device,{sessionId}server,{serverNo},file,{sessionId}reply: MQTT response message topic path. This is an optional field, set only when response data is required; the responder returns the response data via this topic. This design eases integration for third-party systems, which may subscribe to topics according to their own conventions and use their own topic definitions. This field exists to support clients that lack MQTT 5.0 features (corresponding to Response Topic in MQTT 5.0).status: Response status code; the default is 200. It gives a quick indication of the overall result of the request.
200: The request was executed successfully without any errors.400: Object validation failed: request parameters missing, over-length, or malformed; see the error field for details.401: Authentication failed: wrong credentials, invalid or expired token, or missing authentication information.403: Access denied: authenticated but lacking permission for the target resource.422: Business logic validation failed: the request is well-formed but a business condition is not met (e.g., target data not found); see the error field for details.500: Internal server error: the UI only shows "System Error"; details are recorded in server-side logs.1000: Message conversion failed: the request body cannot be parsed into the target object or the response body cannot be serialized (data format mismatch).1001: Controller parameter validation failed: form fields missing, over-length, or malformed; see the error field for details.error: Error description; optional, returned only when an exception occurs, so the caller can clearly understand the specific cause.data: Response data; optional, present only when there is data to return.replyNumber: Number of replies, corresponding to replyNumberMax in the request structure; it indicates how many replies were made for this request.{sessionId}: A randomly generated identifier string; it remains unchanged while the current program is running.{username}: The current login username.{deviceNo}: The device number.{serverNo}: The server number.reply field is used only for scenarios that require multiple rounds of bidirectional communication, such as WebRTC.