假设有2个人A和B,他们正在使用我的实例消息应用程序聊天,A或B可能会在对等方发送消息时切换到其他应用程序或锁定屏幕。如你所知,消息来自A将首先发送到服务器,然后服务器将它发送到B.如果B的应用程序不在前台,它将不会立即收到消息,所以我应该使用远程通知。 / p>
我想知道的是我的服务器端如何实现远程通知功能。我有两个选择。
第一种方法很简单,但可能会增加APNS服务器的压力。
第二个是复杂的,它必须保持每个用户的应用程序状态,它可能不准确。假设当“A”的应用程序到达后台并且网络非常糟糕时,“A”无法通知服务器它进入后台,服务器认为“A”在前台,所以当“B”发送时消息“A”,服务器不会向APNS发送远程通知。
任何有相关经验的人请分享您的解决方案,提前谢谢。
答案 0 :(得分:1)
每次服务器收到消息时,我都会向APNS发送消息。
完全!只需为每条消息发送推送通知。如果应用程序位于前台,则无论如何都不会显示通知。
第一个是一个简单的方法,但它可能会增加APNS的压力 服务器
APNS将能够处理它,不用担心。
如果您尝试将应用状态与服务器同步,您迟早会遇到竞争条件和其他问题,因此不要让事情变得更加复杂......
答案 1 :(得分:0)
虽然Push(远程)通知几乎是瞬间传递的(APNS可以扩展以加载),但我建议您探索第三方库。这是一个很好的tutorial。值得探索XMPPFramework。 This也可能有用。