This is a room based messenger server with message persistance.
All websocket connections are handled by one endpoint ws/{roomID}
. There are three main vehicles to handle "room" separation: Hub
, Room
, and Client
. Hub
is the top level room mananger. It holds all of the open rooms and manages room creation and deletion. Room
holds information about each reoom inculding a list of Clients
. Clients
are one "entity" in a room. This includes their *websocket.Conn
and their uniqueID.
Authentication for HTTPS connections is handled by JWT bearer token headers. And the websocket authentication will be handled by a ticketing system.