当前位置 : 主页 > 手机开发 > cordova >

cordova – 服务器到Phonegap推:SignalR与Azure通知中心

来源:互联网 收集:自由互联 发布时间:2021-06-10
嗯,我在进行我的Phonegap应用程序开发时是一个困境:对于实时事件通知,我应该使用Azure Notification Hub还是SignalR? 为了我的理解,SignalR通过使用Web Sockets对实时Web应用程序是有好处的.而通
嗯,我在进行我的Phonegap应用程序开发时是一个困境:对于实时事件通知,我应该使用Azure Notification Hub还是SignalR?

为了我的理解,SignalR通过使用Web Sockets对实时Web应用程序是有好处的.而通知中心可以轻松地在多个平台上发送推送通知.
为了方便您的回应,我可以解释一下我目前拥有的结构以及应用程序的应用.

应用程式:
它基本上是一个应用程序,用户可以创建组并邀请其他用户.用户还可以使一个组“在线”,以便其他用户可以“输入”组.当组在线并且用户已经输入时,他们可以发送问题,交换消息等.

需求:
当用户在组中提出问题,或者进入/离开组时,其他用户需要在应用屏幕中看到新用户.我可以在服务器上进行轮询来检查并更新UI,但这是现代时代所不允许的.我在这个问题上的搜索引起了两件事:SignalR和NotificationHub.

目前的架构:
客户端 – > PhoneGap应用程序与backbone.js.
后端 – > Asp.NET Web API与实体框架和Azure Sql Server.

我已经考虑使用通知中心和标签.
例如,当用户输入在线组时,它向服务器发送一个请求以注册“grouplisten:{groupId}”标签.然后,服务器将该标签注册到用户的设备,并且还通过标签“grouplisten:{groupId}”向所有其他设备发出通知,以便其他用户使用最近加入的用户更新用户界面.此外,当用户离开组时,它会向服务器发送一个请求,以删除“grouplisten:{groupId}”标签,并通知“grouplisten:{groupId}”的设备.但是通过这个简单的例子,看起来像这样可以变得难以管理.

这两种技术在移动平台上都有其利弊:

SignalR

优点:

>非常适合实时交付,时间或从服务器接收通知很重要.
>所有主流浏览器,IE8,FireFox,Chrome,Safari和Android WebView,iOS Safari,IE手机均支持Web客户端,因此它们运行良好.
>解决方案可以用JS编写,无需知道

缺点:

>必需的专用服务器,但可能托管与共享托管可能,因为没有性能饿了.
> Cordova特别需要手动连接管理,以获得更好的用户体验,而不是依靠SignalR提供的重新连接机制(这对于iOS而言可能会丢失网络连接以进行电池维护,在Android上是不需要的).
>它具有Safari在iOS上的一个已知问题(需要运行长轮询配置,you can find more on that issue here) – 在具有频繁ajax请求的现实世界场景中,强制您使用不同的IP地址进行SignalR Server的无缝体验iOS版.

Azure通知中心

优点:

>使用Google,Apple和MS的现有基础架构向用户发送通知,并且每个用户都不保证立即交付通知.您必须分别阅读每个平台:

>苹果:Quality Service section of APNS docs
> Google:GCM Advanced Topics

>不需要专用服务器

缺点:

>不保证立即发货.
>需要使用每个本机平台的语言. (Cordova https://github.com/sgrebnov/cordova-plugin-azure-notificationhub的插件很棒,但是当Android上的应用程序暂停并且iOS上没有64位版本时,它不允许收到通知)

网友评论