SignalR与Google Cloud Messaging的比较

5
我有一个基于.Net的后端服务器,托管在Azure上。我正在尝试使用Xamarin构建Android应用程序。该应用程序将具有一个聊天功能,允许用户彼此通信。 我一直在使用SignalR进行简单的实时Web任务,我知道Google Cloud Messaging for Android也可以实现类似的功能,但我已经阅读到SignalR比Google Cloud更可靠。我更倾向于使用Google云消息服务,因为它不需要与后端保持持续连接,从而节省电池寿命。但我唯一的困惑是是否能够针对Web实现聊天功能。 我的想法是在Web上使用SignalR,在Android上使用Google Cloud Messaging。我需要确保两个聊天同步。是否可能这样做?或者我应该同时使用SignalR? 任何帮助都将不胜感激!!
2个回答

6

是的,你可以在两个平台上都使用SignalR。我也在我的应用程序中使用SignalR。即使只有谷歌云消息服务,它也为我提供了更好的服务。我的一个安卓应用程序包括signalR和GCM。当我的应用程序在前台时,我使用SignalR,当它转入后台时,我使用GCM。它对我来说仍然很稳定。你也可以尝试这样做。


感谢您的回答!使用SignalR更有意义,但是有些事情使用SignalR无法实现或者比使用GCM更难实现。 - Ahmed Mujtaba
我同意你的看法,但是GCM并不是非常可靠。根据我的经验,它会漏掉每10个通知中的1个。 - Masum
你好 @Masum,使用 SignalR 单独生成通知是否可能,即使应用程序处于后台模式? - M.Yogeshwaran
@M.Yogeshwaran,我没有使用SignalR进行后台操作。我只在前台使用了它,但我相信如果你使用SignalR服务,那么你可以解决这个问题。请记住,SignalR连接可能会在一定时间后丢失,因此您必须检查何时丢失连接,然后必须重新建立连接。显然,SignalR库为您提供了一个事件,您可以在其中检测到连接丢失。 - Masum
SignalR 的电池消耗如何?它是否会不断保持连接并耗尽用户的电池? - Emil

1
Google云消息传递(GCM)不建议用于制作聊天应用程序。您应该坚持使用SignalR。 Google云消息通常用于推送通知。
如果您真的想使用GCM,则我会向您推荐FCM,但它是与SignalR(&.net)相比的独立解决方案。
Firebase云消息传递(FCM)是GCM的新版本。它继承了可靠且可扩展的GCM基础架构,以及新功能!请参见常见问题解答以了解更多信息。如果您要在新应用程序中集成消息传递,请从FCM开始。强烈建议GCM用户升级到FCM,以便从今天和未来的新FCM功能中受益。
更新
考虑电池使用情况,GCM(或FCM)将优于SignalR。

1
我没有使用 FCM。但我想知道,FCM 是否像 GCM 一样在应用程序关闭时工作? - Masum
2
是的,FCM是GCM的一个超级集合,并且在相同的基础设施上运行。你可以用GCM做的任何事情都可以用FCM来实现。 - Arthur Thompson
谢谢,我明白了。 - Masum

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接