Communication protocol

The server and its clients use a certain protocol for their communication.

Network

The communication is handled with ZeroMQ (zmq, https://zeromq.org) via port 11657 (TCP).

Message format

Multipart message with 4 frames: [ID, empty, action, data]. All components are of type string.

The last component data needs to be formatted as a JSON string with specified entries.

General entries in data

ClientServer:

  • Empty data can be specified by "{}".

ServerClient:

  • The entry success is always required, and if success == False, only an entry error needs to be present.

  • The entry busy might be set to True if the server is busy at the moment. In this case, no other entries are available in the data (except success). The client should retry the request after waiting a while. If the server is not busy, it sends the data described in the table below back to the client.

Actions

For specific actions, please see the developer documentation of the corresponding applications.