1.6 KiB
1.6 KiB
This file documents the websocket /api/ws
Format
Packet id then arguments
Some packets don't have arguments so send just the packet id
There can be multiple packets in one message, those with variable length arguments have to be terminated
Authentication
The first message from the server is:
0x6d 0x73
The client should reply, in a single message:
0xb6 0xc4
- client version (byte), right now it's 0
- length of access key (byte)
- access key, decoded from base64
Authentication complete, the server will send a disconnect if something's wrong, otherwise it will pong.
If the client version is incorrect, the server sends a 0x01 disconnect, and doesn't verify the access key.
Commands
Client -> Server
0x00
- Ping- no body
- the server replies with 0x00 Pong
- also a keepalive, sent by client in at most 30 second intervals otherwise the server disconnects
0x01
- Disconnect- first there's the reason as byte, see below
- second argument is a signed byte - message length in bytes
- then the utf8 encoded message
- after that the server doesn't wait for a reply it just closes the connection
0x02
- Settings- setting id followed by value (length varies) terminated with 0x00
Server -> Client
0x00
- Pong- the body is a single signed long (8 bytes) which the current unix time
- a response to client's command of the same id
Disconnect reasons
0x00
- unspecified0x01
- incompatible client0x02
- timeout (client didn't send ping)0x03
- access key revoked0x04
- server error
Settings
0x00
- not used