Как организовать мессенджер на веб сокетах?
Например, в этом мессенджере есть тысячи пользователей.
Как между каждым из них организовать соединение?
То есть, есть один веб сокет сервер и все пользователи отправляют запросы ему, а он в свою очередь отправляет эти запросы нужным пользователям?
Сможет ли он содержать соединения между 10000 пользователей одновременно?
Вы ни разу не упомянули в своём вопросе такие вещи как:
1. Сохранение истории сообщений
2. Подключение нескольких клиентов к одному чату
3. Сам факт возможности наличия у одного пользователя нескольких клиентов.
Тогда я предположу, что это всё не нужно =>
В самом простом случае достаточно будет просто гарантировать, что два клиента будут подключаться к одному и тому же серверу.
В таком случае достаточно будет одного координирующего сервера, который знает о всех запущенных websocket-серверах и какого-то механизма для горизонтального масштабирования.
Подобная схема легко сможет переварить миллионы одновременных диалогов и надёжную доставку уведомлений.