Какое лучшее решение для вебсокетов без слишком больших накладных расходов?

Я довольно новичок в базах данных реального времени с WebSockets, поэтому я столкнулся с, вероятно, самым важным вопросом, когда дело доходит до начала, какая база данных и подход в бэкенде являются самыми быстрыми и надежными для настройки и масштабирования.

У меня есть Django backend с MongoDB (Djongo) и React во фронтенде. Хостинг на виртуальной машине linux в облаке google. В настоящее время я сравниваю Websocket-решения для создания компонентов, таких как текстовые редакторы, которые могут использоваться совместно, как google docs, например. Чтобы все было аккуратно, я бы с удовольствием выбрал подход на основе Django, но работа с Websockets в Django кажется очень накладной по сравнению с другими решениями.

Что я понял на данный момент, попробовав все это.

Django:

Имеет много накладных расходов, поскольку вам нужно, Channels, Redis и, следовательно, вся настройка для использования WebSocket связи в реальном времени. Сам Channels показался мне довольно простым в настройке, но с добавлением Redis, конфигураций ASGI, и затем, чтобы убедиться, что он работает с моим бэкендом Mongo DB, кажется мне очень сложным по сравнению с другими системами с большим количеством потенциальных проблем на пути. Я закодировал все и добился того, что большая часть этого работает, и начал сталкиваться с проблемами, когда приступил к аутентификации и использованию Redis между всем.

Node.js:

Node.js кажется невероятно простым в настройке с помощью sockets.io и Mongoose. Я не запускаю сервер Node.js на своей VM просто из-за моего опыта работы с Node.js и потому что я стараюсь оставаться в своем бэкенде Django Python настолько, насколько это возможно. Но Node.js кажется настолько более простым в настройке и обращении, что я думаю о переходе на него ради аспекта реального времени.

Firebase:

Firebase уже все настроил для вас, так что это кажется таким же простым, как Node.js. Почему я не говорю "проще, чем Node.js", потому что настройка схемы немного сложнее, чем Mongo DB, и в моем случае обработка авторизации через Django и уверенность в том, что Firebase может авторизироваться с моим бэкендом Django - это то, с чем я еще не разобрался, не заставляя пользователя регистрироваться два раза.

Я чувствую, что застрял здесь со своей информацией. Каков ваш опытный вариант по WebSockets или базам данных реального времени в целом? Что было бы лучшим решением этой проблемы?

Вернуться на верх