Sybren A. Stüvel 3c7c79206e More work on the new flamenco.io site
This is basically the contents of the `README.md` file, spread over
multiple documentation pages.
2022-07-05 14:46:38 +02:00

23 lines
991 B
Markdown

---
title: SocketIO
weight: 50
---
[SocketIO v2](https://socket.io/docs/v2/) is used for sending updates from
Flamenco Manager to the web frontend. Version 2 of the protocol was chosen,
because that has a mature Go server implementation readily available.
SocketIO messages have an *event name* and *room name*.
- **Web interface clients** send messages to the server with just an *event
name*. These are received in handlers set up by
`internal/manager/webupdates/webupdates.go`, function
`registerSIOEventHandlers()`.
- **Manager** typically sends to all clients in a specific *room*. Which client
has joined which room is determined by the Manager as well. By default every
client joins the "job updates" and "chat" rooms. This is done in the
`OnConnection` handler defined in `registerSIOEventHandlers()`.
- Received messages (regardless of by whom) are handled based only on their
*event name*. The *room name* only determines *which* client receives those
messages.