КОНТЕКСТВеб-приложение в реальном времени: socket.io ИЛИ размещенные данные/обмен сообщениями?
App: Single-страницы в режиме реального времени веб-приложение
Функциональность:
- Пользователь манипулирует виджетов на приложение, виджет данные, отправляемые на сервер
- сервер вычисляет с помощью рабочего потока & отправляет данные обратно в приложение
Связь:
- Тип: В настоящий момент только приложение < -> сервер.
- Потребует паб/суб в будущем
- Размер: JSON несколько кБ на обновление либо образом
- Частота: 1-10 обновлений в минуту
пиковая нагрузка: Несколько сотен одновременно работающих пользователей (но, конечно,)
Разработчик компетенции: маггловская
ПОДХОДЫ
1) Наивный подход: Хостинг node.js + экспресс + socket.io
У меня есть песочница работает нормально с наивным подходом, но я чувствую, как Toonces Движущей Cat (я сказал вам, что он мог ездить! Просто не очень хорошо!). У меня есть шлем для csp, xframe, xss и т. Д., Но мой код socket.io очень простой, никаких специальных обработчиков событий или дросселирования трафика.
2) Альтернативный подход: Хостинг node.js + Хостинг в режиме реального время службы данных/сообщения
Expectation здесь является то, что служба размещаемых данных в режиме реального времени/обмена сообщений является надежной и может масштабироваться для движения, кроме от обработки таких проблем, как DoS и безопасный транспорт. Хост-приложение node.js будет обслуживать статические файлы за CDN, поэтому в основном это касается потоков данных и рабочих потоков в реальном времени. Приложение node.js не будет напрямую смотреть на пользователей веб-приложений.
ВОПРОС
Вы порекомендуете подход # 2, как очевидно, выше и стоит дополнительных затрат?
Любые другие комментарии/предложения приветствуются.