- LiveKit server
- Token service
- WebApp
The LiveKit service is an all in one process that manages the conference rooms, participants and their corresponding exchange of media. For best performance and compatibility, it needs to run on a public IP address, although local offline development is possible within its network.
It is managed with a corresponding JSON Web Token (JWT), handed out by the token service.
The WebApp will delegate these request provided that it has a valid token.
More details are in the LiveKit document
The token service is a simple PHP script that creates and signs a JSON Web Token (JWT), where some information and rights for a certain participant is stored. It also contains an expiration timestamp that will make the LiveKit server to disregard the token as invalid.
A token is signed with a password that the LiveKit server also has access to.
It needs a webserver that is able to run PHP code.
It is called by the WebApp doing an HTTP POST with the following JSON data fields:
room: Name of the roomidentity: internal identity of the participantname: Display name of the participantcharacter: Name of the character, currently one of:doux,mort,targorvita, the coloured dino characters created by Arkspassword: password that might be required to join the room or become admin.
The POST URL is defined in the corresponding .env environment files as VITE_TOKEN_URL and currently points to the token/ subfolder inside the WebApp.
The WebApp (or frontend) is the part that is plain HTML, CSS and JavaScript and can be hosted with any regular web hosting service.
It needs a proper token, generated by the token service (on the backend) to interact with LiveKit
The frontend is written in SolidJS+JSX using TypeScript.