Я хочу сделать приложение, которое позволяет пользователям комментировать и отправлять сообщения. Однако уведомления об этих событиях должны будут приходить мгновенно, как и в любом другом приложении для социальных сетей или чата. Вот о чем я думаю:
- Веб-интерфейс: Angular, мобильный: Ioinc с Angular
- Бэкенд: узел, монго
Вот как я думал реализовать уведомление в реальном времени.
- Между внешним интерфейсом (веб-сайтом и мобильным приложением) и бэкэндом существует постоянное сокетное соединение.
- Всякий раз, когда приходит сообщение, предназначенное для определенного пользователя, я буду использовать какой-то хук Mongo, чтобы отправить уведомление во внешний интерфейс через соединение сокета.
Теперь путаница с этим подходом:
- Будут ли миллионы подключений к сокетам работать в масштабе? Если нет, то как реализовать такую систему pub-sub? Мне нужно сделать это с нуля, не используя Firebase.
- Что делать, если пользователь находится в автономном режиме, когда он получает сообщение в бэкэнде? Если розетка не включена, как он получит сообщение? Есть ли способ сделать это с помощью Кафки? Пожалуйста, объясните, если у вас есть идеи по этому поводу.
Это правильный подход? Если нет, можете ли вы предложить, что было бы уместно?