我正在开发一个即时消息应用程序。我将使用SignalR将消息推送到客户端。我该如何处理离线设备以获取最新消息?我有两个解决方案:
当服务器想要向设备发送消息时,它不关心设备是否在线。它只是用SignalR发送数据,所以如果设备离线,用户就不会收到消息。当设备再次联机时,它会将设备SQLite中记录的最新ID发送到服务器。然后,服务器将ID大于该消息的消息发送给客户端。
当服务器想要向设备发送消息时,它首先检查设备是在线还是离线。如果它在线,它使用SignalR发送消息。如果设备处于离线状态,它会将推送通知(使用GCM for Android或APNS for iOS)发送到设备。然后,当设备在线时,它会检查推送通知并更新SQLite中的消息。
哪种解决方案更好?
答案 0 :(得分:0)
老实说,这取决于你的需求。您的客户是否希望在他们不使用该应用程序时收到通知?我预计大多数通用即时消息应用程序(如Skype和朋友)都会出现这种情况。
或者,用户可能更愿意在没有运行应用程序时收到通知。我个人建议你先做一个更简单的选项 - 只需选项1-,只在需要时添加通知。 PushSharp对于这类事情来说是一个很好的工具。