Какая система push-сообщений подходит для мессенджера с несколькими платформами?

Я работаю над проектом мессенджера (чата), который состоит из двух (или, точнее, трех) частей.

  1. На стороне сервера у меня есть проект ASP.NET WepApi.
  2. На стороне клиента у меня есть мобильное приложение (Android), которое разрабатывается React-Native.
  3. И часть веб-интерфейса, которая разрабатывается Reactjs.

Я использую signalR для управления соединением между клиентами и сервером для доставки сообщений. Он отлично работает как в Интернете, так и на мобильных устройствах (кроме случаев, когда мобильное приложение активно).

Мне также нужно отправлять сообщения в мое мобильное приложение, когда оно находится в автономном режиме. очевидно, решение состоит в том, чтобы использовать GCM (обмен облачными сообщениями Google). Я работал над этим и сделал его функциональным.

Теперь мне нужно поддерживать два разных вида кода, один из которых написан в signalR, а другой — в google GCM. И я думаю, что это не логично.

Могу ли я удалить зависимость от signalR в своем мобильном приложении и делегировать все сообщения в GCM? что делают приложения для обмена сообщениями, такие как Whatsapp?


person Ehsan    schedule 02.09.2017    source источник
comment
Вы видели базу данных Firebase. С его базой данных в режиме реального времени вы можете создать чат-приложение за считанные дни. Ознакомьтесь с этим примером проекта: github.com/novoda/bonfire-firebase-sample   -  person SafaOrhan    schedule 02.09.2017
comment
Спасибо. Итак, согласно вашему комментарию, ответ на мой последний вопрос - да. Верно?   -  person Ehsan    schedule 02.09.2017
comment
Да. С базой данных Firebase и облачным обменом сообщениями Firebase вы можете реализовать полнофункциональное приложение для чата. Однако это не будет p2p. Он будет работать через серверы firebase.   -  person SafaOrhan    schedule 02.09.2017


Ответы (2)


Вы видели базу данных Firebase? С его базой данных в режиме реального времени вы можете создать чат-приложение за считанные дни.

Ознакомьтесь с этим примером проекта: https://github.com/novoda/bonfire-firebase-sample< /а>

person SafaOrhan    schedule 05.09.2017

Вы можете отправлять и получать push-сообщения без использования FirebaseDatabase и только с помощью SingnalR.

Решение простое; отправитель вызывает функцию через соединение SignalR, и эта функция проверяет, находится ли получатель в онлайн-списке пользователей. Если он есть в списке, он отправляет сообщение через SignalR, иначе через push-сообщение.

Я использую этот метод в течение нескольких лет в Интернете, iOS и Android, и у меня не было проблем. Единственный недостаток по сравнению с FirebaseDatabase заключается в том, что если у отправителя нет подключения к Интернету, он не может отправить его, когда он становится онлайн, вам следует реализовать это вручную. Однако FirebaseDatabase может это сделать.

person Berk Özel    schedule 28.09.2017