什么样的推送消息系统适合多平台的消息应用程序?
What kind of push messaging system is suitable for a messenger app with multiple platform?
我正在开发一个 Messenger(聊天)项目,它包含两个(或更精确的三个)部分。
- 在服务器端我有一个 ASP.NET WepApi 项目。
- 在客户端,我有一个由 React-Native 开发的移动应用程序 (Android)。
- 还有一个由 Reactjs 开发的 Web UI 部分。
我使用 signalR 来管理客户端和服务器之间的连接以传递消息。它在网络和移动设备上都运行良好(移动应用程序处于 活动 时除外)。
我还需要在离线模式下向我的移动应用推送消息。显然,解决方案是使用 GCM(google 云消息传递)。我解决了它并使其发挥作用。
现在我必须维护两种不同的代码,一种是用 signalR 方式编写的,另一种是用 google GCM 编写的。我认为这不合逻辑。
我可以在我的移动应用程序中删除对 signalR 的依赖并将所有消息委托给 GCM 吗? Whatsapp 等即时通讯应用程序有什么作用?
你见过 Firebase 数据库吗?借助其实时数据库,您可以在几天内制作一个聊天应用程序。
您可以在不使用 FirebaseDatabase 且仅使用 SingnalR 的情况下发送和接收推送消息。
解决方法很简单;发件人通过 SignalR 连接调用函数,此函数检查接收者是否在在线用户列表中。如果它在列表中,则通过 SignalR 发送消息,否则通过推送消息发送消息。
我在 Web iOS 和 Android 上都使用这种方法几年了,没有遇到任何问题。与 FirebaseDatabase 相比唯一的缺点是,如果发件人没有互联网连接,当它在线时他不能发送它,你应该手动实现它。但是,FirebaseDatabase 可以做到这一点。
我正在开发一个 Messenger(聊天)项目,它包含两个(或更精确的三个)部分。
- 在服务器端我有一个 ASP.NET WepApi 项目。
- 在客户端,我有一个由 React-Native 开发的移动应用程序 (Android)。
- 还有一个由 Reactjs 开发的 Web UI 部分。
我使用 signalR 来管理客户端和服务器之间的连接以传递消息。它在网络和移动设备上都运行良好(移动应用程序处于 活动 时除外)。
我还需要在离线模式下向我的移动应用推送消息。显然,解决方案是使用 GCM(google 云消息传递)。我解决了它并使其发挥作用。
现在我必须维护两种不同的代码,一种是用 signalR 方式编写的,另一种是用 google GCM 编写的。我认为这不合逻辑。
我可以在我的移动应用程序中删除对 signalR 的依赖并将所有消息委托给 GCM 吗? Whatsapp 等即时通讯应用程序有什么作用?
你见过 Firebase 数据库吗?借助其实时数据库,您可以在几天内制作一个聊天应用程序。
您可以在不使用 FirebaseDatabase 且仅使用 SingnalR 的情况下发送和接收推送消息。
解决方法很简单;发件人通过 SignalR 连接调用函数,此函数检查接收者是否在在线用户列表中。如果它在列表中,则通过 SignalR 发送消息,否则通过推送消息发送消息。
我在 Web iOS 和 Android 上都使用这种方法几年了,没有遇到任何问题。与 FirebaseDatabase 相比唯一的缺点是,如果发件人没有互联网连接,当它在线时他不能发送它,你应该手动实现它。但是,FirebaseDatabase 可以做到这一点。