我目前正处于设计跨平台移动应用程序(iOS、Android、WP8)的早期阶段。该应用程序的核心是允许在未知数量的客户端设备之间进行基于接近度的交互。
有人可以推荐一个框架或技术,允许我将服务器生成的基于位置的接近警报推送到甚至可以很好地扩展的客户端吗?推送通知(使用 PushSharp 的跨平台)是否是一个可行的选择,或者推送通知是否总是与设备上的某种 toast 通知齐头并进?
更新:应该延迟 30 秒甚至一分钟。
我目前正处于设计跨平台移动应用程序(iOS、Android、WP8)的早期阶段。该应用程序的核心是允许在未知数量的客户端设备之间进行基于接近度的交互。
有人可以推荐一个框架或技术,允许我将服务器生成的基于位置的接近警报推送到甚至可以很好地扩展的客户端吗?推送通知(使用 PushSharp 的跨平台)是否是一个可行的选择,或者推送通知是否总是与设备上的某种 toast 通知齐头并进?
更新:应该延迟 30 秒甚至一分钟。
推送通知有很多延迟可以给你任何接近的东西real-time
。此外,不保证推送通知可以到达设备。
您确实需要考虑位置更新应该限制多少时间。您还应该对各种设备上的 GPS 更新速度进行一些测试。我在 Nexus 4 上进行了测试,它也不是接近实时的。因此,在您的整个应用程序中,无论是服务器端还是客户端,您都会遇到意想不到的事情real-time
。
但是,如果您可以忍受几秒到 30 秒或更长时间的延迟,那么推送通知对您来说效果很好,它们也可以很好地扩展。
编辑:
推送通知总是与设备上的某种 toast 通知齐头并进?
有一个称为 RAW 通知的概念,它允许您使用通知发送任意信息。但就我个人而言,我只会通知客户端有关服务器上准备好的更新,然后它可以获得应用程序所需的所有信息。这是因为正如我所说,推送通知不能保证永远到达设备,还因为您受限于可以在通知中嵌入多少信息。
所以我对流程的建议是:
如果应用程序处于后台状态,那将很有效。在前台显示时,我会每隔一秒左右轮询一次服务器;仍然收到通知,只是强制客户端更新。
对于“很好地扩展”部分,您可能还想看看Windows Azure Service Bus Notification Hubs。它目前处于预览阶段,仅支持 Windows 8 Store 应用程序和 iOS,但对 Android 和 Windows Phone 的支持正在开发中。