Принцип работы чата на Websocket
прошу помочь мне в понятии, как устроены чаты в messengerах на Websocket.
Я встречал многие статьи по написаю backend для чата. Но все они описывают какой-то общий чат.
Т.е между клиентом и сервером устанавливается websocket соединение, когда пользователь отправляет сообщение, сервер его принимает и рассылает его всем другим пользователем.
Т.е все пишут в общий чат, и все читают в этом чате.
Но как устроены именно чаты, например из 3 человек, или личные сообщения (это же тоже чат, просто из 2 человек).
Рассмотрим, например чат из 3 человек: 1. Человек A, отправил сообщение в наш чат (например в /messages), сервер принял, и ему нужно отправить это 2 другим.
Куда он отправит, в такое же соединение каждого из пользователей с сервером, которые слушают /messages? но ведь /messages слушают все пользователи (не только этого чата). Как это устроено?
Или это будет не /messages, а chat, и все 3 человека слушают именно /chat?id=1002. Но тогда я не понимаю, как это устроено. Например, пользователь создал чат с этими 2 людьми, но как они узнают об этом, они же не подписаны еще на /chat?id=1002.
Заранее спасибо