diff --git a/README.md b/README.md new file mode 100644 index 0000000000000000000000000000000000000000..8a7147c265fa7b01c1af39615403f591d6e813be --- /dev/null +++ b/README.md @@ -0,0 +1,29 @@ +# PompeyPlays +Pompey plays video games together, everyone has fun and nothing* catches fire + +### More Info Goes Here + +## PP Websocket API +The websocket server uses the WS library built into [combi-server](https://github.com/Commander-lol/combi-server) for +standardised communications. The WS server expects JSON formatted into utf-8 text and will communicate back with such. +Binary and slimmer string based versions of the protocols will be available when combi-server has been updated to +handle those. + +### Basic JSON format +WS requests should contain two keys: a `type` key and a `payload` key; other data will be ignored. The value of the `type` +key should be a string dictating the command being sent, while the value of `payload` should be a String, Number or JSON +object depending on what the server expects for the given type. + +If you're using ws.lib, as provided by combi-server, the `socket.message(type, payload)` method handles the formatting +required, otherwise you'll need to manually create the command object. + +### PP Commands +Currently the PP server listens for the following commands (`type` parameter) and expects the described data (`payload`): +* _input_: A JSON object containing a `key` property that describes the key being input. This is a virtual key mapped to +a gamepad, and not the actual keyboard key that might have caused the message to be sent or that might be pressed as a +result. Optionally contains an `auth` property with a Web Token hash. + +### PP Events +Currently the PP server sends the following messages to clients (Listen to those that you want to handle): +* _input-response_: Sent in response to an input. Payload will be undefined unless something was wrong with the request, +safe to ignore in most cases