Принцип работы чата на Websocket

прошу помочь мне в понятии, как устроены чаты в messengerах на Websocket.

Я встречал многие статьи по написаю backend для чата. Но все они описывают какой-то общий чат.

Т.е между клиентом и сервером устанавливается websocket соединение, когда пользователь отправляет сообщение, сервер его принимает и рассылает его всем другим пользователем.

Т.е все пишут в общий чат, и все читают в этом чате.

Но как устроены именно чаты, например из 3 человек, или личные сообщения (это же тоже чат, просто из 2 человек).

Рассмотрим, например чат из 3 человек: 1. Человек A, отправил сообщение в наш чат (например в /messages), сервер принял, и ему нужно отправить это 2 другим.

Куда он отправит, в такое же соединение каждого из пользователей с сервером, которые слушают /messages? но ведь /messages слушают все пользователи (не только этого чата). Как это устроено?

Или это будет не /messages, а chat, и все 3 человека слушают именно /chat?id=1002. Но тогда я не понимаю, как это устроено. Например, пользователь создал чат с этими 2 людьми, но как они узнают об этом, они же не подписаны еще на /chat?id=1002.

Заранее спасибо


Ответы (0 шт):