@tzendos

Rust, написание chat сервера, как быть?

Добрый день.
Заинтересовался серверным программированием на Rust, нашел небольшой примерчик:
https://github.com/Hoverbear/rust-rosetta/blob/mas...
Да, все понятно и прикольно. Но захотелось большего, а именно полноценного chat сервера.(в духе чистого Rust и использования его нативных функций). Клиент потом допилю на другом более высокоуровневом языке(C#,Java).
Идея состоит в том же, запускать отдельный поток для отдельного клиента, где будет идти прослушивание сокета и отправка сообщений. Но как быть? Как правильно запускать этот поток, чтоб была возможность после получения сообщения отправить это сообщение всем остальным пользователям? Естественно пользователей нужно хранить, допустим временно: в Vec, либо в HashMap. Но как получать доступ из функций запущенных в потоке к этому общему листингу сокетов?
Буду рад работающему примерчику, чтоб далее его разобрать .
Заранее спасибо.
  • Вопрос задан
  • 780 просмотров
Пригласить эксперта
Ответы на вопрос 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
откажитесь от идеи создавать по потоку на пользователя, это далеко не самый эффективный способ работы с I/O. Лучше вооружитесь event loop.

https://nbaksalyar.github.io/2015/07/10/writing-ch...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы