Простецкая реализация проека по ознакомительной практике на случай, если вдруг сроки начнут поджимать.
docker pull burenotti/silly-chat:v0.2.0
docker run -dp 6969:80 burenotti/silly-chat:v0.2.0После этого докуха здесь или здесь, там все можно интерактивно потыкать. Апи рут вот: http://localhost:6969.
Swagger не показывает websocket эндпоинты, поэтому работа с ними описана здесь.
/rooms/{room}/events/listen - путь к вебсокет соединению, которое стримит новые ивенты группы.
Каждый ивент - это стркутура в формате json, которая имеет параметр type, идентифицирующий тип элемента.
user_joined- пользователь стал членом комнатыuser_connected- пользователь в данный момент подключился и слушает события комнаты.user_disconnected- пользователь отключился от прослушки ивентов.new_message- в комнату отправлено сообщение
user_joined:username: string- Имя присоединившегося пользователяjoined_at: int- Время, в которое произошло событие в формате unix timestamp
user_connected:username: string- Имя подключившегося пользователяconnected_at: int- Время, в которое произошло событие в формате unix timestamp
user_disconnected:username: string- Имя отключившегося пользователяdisconnected_at: int- Время, в которое произошло событие в формате unix timestamp
new_message:sent_at: int- Время отправки сообщения в формате unix timestampmessage_id: str (uuid4)- Уникальный идентификатор сообщенияfrom_user: string- Имя пользователя, отправившего сообщениеtext: string- Текст сообщения