Задать вопрос
web-verzus-team
@web-verzus-team
Full Stack Developer

Как грамотно спроектировать backend real-time приложения?

Добрый день. На сервере используем Node.JS + Express + ws.
Детали: есть приложение обучающих игр. Работает учитель с учеником. Учитель "выдает" задания ученику, ученик их видит и выполняет. Все, что вводит в поля или выбирает select-ы ученик видит учителя у себя. То есть по факту они работаю на одной и той же странице, а данные "ходят" по вебсокету. При подключении собираются все данные по уроку и применяются на странице, а дальше ждем web-socket сообщений об изменениях на странице.
Дополнительно еще есть чат. Тоже при подключении получаем список всех диалогов и сообщений и ждем новых сообщений по web-socket.
Как лучше сделать: два разных подключения? Но как их разделить(неймспейсы или что-то в этом духе)? Или одно подключение на все? Но вне урока нужен только чат.
  • Вопрос задан
  • 518 просмотров
Подписаться 9 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
@neacter
По факту у вас чат и окно где учитель с учеником обмениваются заданием должны быть реализованы разными модулями, соответственно и разными подключениями... не вижу смысла вызывать соединение чата при работе с заданиями
Ответ написан
zoonman
@zoonman
⋆⋆⋆⋆⋆
Архитектурно правильно иметь 1 соединение для транспорта данных. Это экономит ресурсы.
Далее вам нужен роутинг сообщений.
Например: селекты обрабатываются модулем страницы, а сообщения в чате - модулем чата.
Реализуется все это достаточно тривиально через шину событий.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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