Signal R Vs推送通知用于聊天等实时应用

时间:2015-02-02 06:24:58

标签: push-notification xamarin signalr azure-mobile-services

我想为ios,android和windows手机创建一个聊天应用程序,以及它将来应该与浏览器一起使用。我的搜索使我使用Signal R和Azure移动服务(AMS)。

我的问题:

1)SignalR使用引擎盖下的Websockets。在Android,IOS,Windows手机和所有移动/桌面浏览器中是否支持websocket?

2)如果没有,使用SignalR和AMS会有什么影响?

3)或者我应该只使用AMS支持的推送通知吗?

4)您可以分享的任何示例应用/代码段。请注意,我将使用Xamarin进行应用开发。

5)你可以给出任何建议。

2 个答案:

答案 0 :(得分:7)

Azure移动服务集成了SignalR,Azure移动服务为客户端应用提供了SDK,我想它是开箱即用的

Real-time with ASP.NET SignalR and Azure Mobile .NET Backend Master the Managed Azure Mobile Services Backend–Part Four

High value mobile backend capabilities included

  

您会发现移动服务中包含许多功能,并且可以随时用于您的Web API。移动推送通知,SignalR(自动扩展)的实时通知,消费者应用的社交身份验证,偶尔连接方案的离线数据同步,仅举几例。

示例:

注意

  • Azure移动服务基于WebAPI!

  • 对于您想要的,您不应该只使用推送通知,因为如果用户忽略它,应用程序无法读取IOS中的推送通知,只能在Android或Windows中获取并保存它。另一件可能是问题的事实是,应用程序正在运行,您不应该显示推送通知,并且您应该显示弹出通知...并且推送通知可能会推迟推送通知服务(Apple ,GCM,WNS ......)。推送通知是当用户不使用推送时在应用中发生的事情的通知。

在我看来,您应该使用AMS + SigalR进行实时通信,然后推送通知以更新用户,然后他不使用该应用程序。

答案 1 :(得分:0)

如果您要限制成本,使用SignalR可以有效避免点击任何推送通知上限。但是,当应用变为有效或无效时,您需要在正确的时间开启/关闭通知,否则应用可能会在后台进行,并且无法发送推送通知。

您可以使用纯推送方式,当应用程序处于非活动状态/后台时显示通知,当应用程序处于活动状态时,您只需截取应用程序中的通知,使用它并取消它,这样它就不会出现问题。得到显示。我在http://www.ageofmobility.com/2014/10/06/azurechatr-building-a-cross-platform-chat-app-for-windows-ios-android/上写了一篇关于这种方法的博客文章以及Github中针对iOS,Android和Windows Universal的3个样本。