Signal R 与实时应用程序(如聊天)的推送通知
Signal R Vs Push Notifications for real time applications like Chat
我想为 ios、android 和 windows 手机创建一个聊天应用程序,它应该可以在将来与浏览器一起使用。我的搜索引导我将 Signal R 与 Azure 移动服务 (AMS) 结合使用。
我的问题:
1) SignalR 在底层使用 Websockets。 Android、IOS、windows 手机和所有 mobile/desktop 浏览器是否支持 websocket?
2) 如果不是,将 SignalR 与 AMS 结合使用有何影响?
3) 或者我应该只使用 AMS 支持的推送通知?
4) 您可以分享的任何示例 app/code 片段。请注意,我将使用 Xamarin 进行应用程序开发。
5) 您可以为此提供任何建议。
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
You will find many capabilities included in Mobile Services and readily available for your Web API. Mobile push notifications, real-time notifications with SignalR (auto-scaled out), social auth for your consumer apps, offline data sync for occasionally connected scenarios, to name a few.
样本:
- https://github.com/gshackles/RealTimeGallery
- Sample to help developers to implement Push Notification, through Azure Notification Hubs, in mobile applications.
注:
Azure 移动服务基于 WebAPI!
对于你想要的,你不应该只使用推送通知,因为如果用户忽略它,应用程序将无法读取 iOS 中的推送通知,只能在 android 或 windows 即可获取并保存。另一件可能成为问题的事情是,如果应用程序是 运行 你不应该显示推送通知,你应该显示一个带有通知的弹出窗口......并且推送通知可能会延迟推送通知服务(Apple、GCM、WNS...)。推送通知是在用户未使用应用程序时通知应用程序发生了某些事情。
在我看来,您应该使用 AMS+SignalR 进行实时通信,然后使用推送通知来更新用户,然后他不使用该应用程序。
如果您想限制成本,使用 SignalR 可以有效地避免达到任何推送通知上限。但是您需要在应用程序处于活动状态或非活动状态时的正确时间打开通知 on/off,否则应用程序可能会进入后台并且不会发送推送通知。
您可以使用纯推送方法,当应用程序处于 inactive/in 后台时显示通知,当应用程序处于活动状态时,您只需在应用程序中拦截通知,使用它并取消它,这样它没有显示。我已经写了一篇关于这种方法的博客 post,并在 Github 中为 iOS、Android 和 Windows Universal 在 http://www.ageofmobility.com/2014/10/06/azurechatr-building-a-cross-platform-chat-app-for-windows-ios-android/ 中提供了 3 个示例。
我想为 ios、android 和 windows 手机创建一个聊天应用程序,它应该可以在将来与浏览器一起使用。我的搜索引导我将 Signal R 与 Azure 移动服务 (AMS) 结合使用。
我的问题:
1) SignalR 在底层使用 Websockets。 Android、IOS、windows 手机和所有 mobile/desktop 浏览器是否支持 websocket?
2) 如果不是,将 SignalR 与 AMS 结合使用有何影响?
3) 或者我应该只使用 AMS 支持的推送通知?
4) 您可以分享的任何示例 app/code 片段。请注意,我将使用 Xamarin 进行应用程序开发。
5) 您可以为此提供任何建议。
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
You will find many capabilities included in Mobile Services and readily available for your Web API. Mobile push notifications, real-time notifications with SignalR (auto-scaled out), social auth for your consumer apps, offline data sync for occasionally connected scenarios, to name a few.
样本:
- https://github.com/gshackles/RealTimeGallery
- Sample to help developers to implement Push Notification, through Azure Notification Hubs, in mobile applications.
注:
Azure 移动服务基于 WebAPI!
对于你想要的,你不应该只使用推送通知,因为如果用户忽略它,应用程序将无法读取 iOS 中的推送通知,只能在 android 或 windows 即可获取并保存。另一件可能成为问题的事情是,如果应用程序是 运行 你不应该显示推送通知,你应该显示一个带有通知的弹出窗口......并且推送通知可能会延迟推送通知服务(Apple、GCM、WNS...)。推送通知是在用户未使用应用程序时通知应用程序发生了某些事情。
在我看来,您应该使用 AMS+SignalR 进行实时通信,然后使用推送通知来更新用户,然后他不使用该应用程序。
如果您想限制成本,使用 SignalR 可以有效地避免达到任何推送通知上限。但是您需要在应用程序处于活动状态或非活动状态时的正确时间打开通知 on/off,否则应用程序可能会进入后台并且不会发送推送通知。
您可以使用纯推送方法,当应用程序处于 inactive/in 后台时显示通知,当应用程序处于活动状态时,您只需在应用程序中拦截通知,使用它并取消它,这样它没有显示。我已经写了一篇关于这种方法的博客 post,并在 Github 中为 iOS、Android 和 Windows Universal 在 http://www.ageofmobility.com/2014/10/06/azurechatr-building-a-cross-platform-chat-app-for-windows-ios-android/ 中提供了 3 个示例。