update documentation

This commit is contained in:
Minecon724 2024-08-23 16:45:49 +02:00
parent b758ccb14c
commit 51f68df50e
Signed by: Minecon724
GPG key ID: 3CCC4D267742C8E8

View file

@ -1,22 +1,27 @@
This file documents the websocket /api/ws
## Format
Packet id then arguments \
## Message format
lways bytes! \
Packet id followed by 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 \
Numbers are signed
There can be multiple packets in one message, those with unknown amount of arguments have to be terminated \
All number types are signed
## Authentication
Unsurprisingly, tokens are used to authenticate.
The first message from the server is:
- `0x6d 0x73`
The client should reply, in a single message:
The client replies with a single message:
1. `0xb6 0xc4`
2. client version (byte), right now it's 0
2. client version (byte), currently it's `0` and won't change until everything is complete
3. length of access key (byte)
4. access key, decoded from base64
4. token (bytes), decoded from base64
Authentication complete, the server will send a disconnect if something's wrong, otherwise it will pong. \
Authentication complete. \
If something's wrong the server disconnects, see below for reason codes. \
Otherwise the client receives a pong. \
No commands are handled during this time
# Commands
@ -33,7 +38,7 @@ No commands are handled during this time
| `0x00` | Pong | 1. long: unix millis | A response to ping, also sent by server on successful authentication |
## Disconnect reasons
On every disconnect there's a human-readable message the client should display
Alongside code, there's always a human-readable message which contains more specific information
| Code | Name | Notes |
|--------|--------------------|-------------------------------------------------|