2017-09-02 23 views
0

我正在致力于一个包含两个(或更精确的三个)部件的信使(聊天)项目。什么样的推送消息系统适用于多平台的Messenger应用程序?

  1. 在服务器端,我有一个ASP.NET WepApi项目。
  2. 在客户端,我有一个由React-Native开发的移动应用程序(Android)。
  3. 还有一个由Reactjs开发的Web UI部分。

我使用signalR来管理客户端和服务器之间的连接来传递消息。它可以在网页和移动设备上正常工作(除非移动应用为活跃)。

我还需要在离线模式下将消息推送到我的移动应用程序。显然,解决方案是使用GCM(谷歌云消息传递)。我解决了这个问题并使其功能化。

现在我必须维护两种不同的代码,一种是用signalR方式编写的,另一种是用谷歌GCM编写的。我认为这不合逻辑。

我可以在我的移动应用程序中删除对signalR的依赖关系,并将所有消息委托给GCM? Whatsapp等Messenger应用程序有什么作用?

+0

你见过Firebase数据库吗?利用其实时数据库,您可以在几天内制作一个聊天应用程序。看看这个示例项目:https://github.com/novoda/bonfire-firebase-sample – SafaOrhan

+0

谢谢。所以根据你的评论,我最后一个问题的答案是肯定的。对? –

+0

是的。借助Firebase数据库和Firebase云消息,您可以实现全功能的聊天应用。但它不会是p2p。它将在Firebase服务器上运行。 – SafaOrhan

回答

1

您可以发送和不使用FirebaseDatabase只有使用SingnalR收到推送消息。

解决方案很简单;发送者通过SignalR连接调用函数,该函数检查接收者是否在在线用户列表中。如果它在列表中它通过SignalR发送消息,否则通过推送消息发送消息。

我在Web,iOS和Android上都使用了这种方法几年,并没有问题。与FirebaseDatabase相比唯一的缺点是,如果发件人没有互联网连接,当它变为联机时他不能发送它,您应该手动实施它。但是,FirebaseDatabase可以执行此操作。

相关问题