Skip to content

Commit d2865f7

Browse files
committed
chats docs
1 parent f71a586 commit d2865f7

1 file changed

Lines changed: 38 additions & 0 deletions

File tree

docs/chats.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# Документация по вебсокетам чатов
2+
3+
## Общая инфа
4+
URL для всего вебсокет-релейтед - `/ws/`
5+
6+
В данный момент есть только 1 Consumer (т.е. View, но для вебсокетов). Это ChatsConsumer, живет на `/ws/chats/`.
7+
8+
# ChatsConsumer
9+
`/ws/chats/`
10+
11+
### Подключение
12+
Чтобы законнектиться, укажите в хедерах авторизацию по Bearer токену (как и для всех других запросов в REST API).
13+
14+
### Events
15+
Есть два типа ивентов, которые можно кидать - general events и chat-related events. Первые состоят только из user_online и user_offline, вторые содержат все остальное: новое сообщение, печатание, чтение и удаление (пока без редактирования)
16+
17+
Структура любого Event, который должен кидаться на вебсокет выглядит так:
18+
```py
19+
class Event:
20+
type: EventType
21+
content: dict
22+
```
23+
И соответсвенно EventType вот такой:
24+
```py
25+
# эти строки указывать в {"type": event_type}
26+
27+
class EventType(str, Enum):
28+
# CHATS RELATED EVENTS
29+
NEW_MESSAGE = "new_message"
30+
DELETE_MESSAGE = "delete_message"
31+
READ_MESSAGE = "message_read"
32+
TYPING = "user_typing"
33+
34+
# GENERAL EVENTS
35+
SET_ONLINE = "set_online"
36+
SET_OFFLINE = "set_offline"
37+
```
38+

0 commit comments

Comments
 (0)