我的问题很简单,使用推送通知开发聊天应用程序是个好主意吗?因此,推送通知并不可靠,并且无法保证它们是否会到达。如果不可靠,实时聊天应用程序应该使用哪种技术?
Why not?
使用 iOS 推送通知构建聊天绝对是可能的。 @Aaron 的观点很有趣,但在我看来没有意义,原因如下:
- 如果您的应用程序发送太多推送通知(如果您使用它作为“聊天”的方式,则会出现这种情况),没有人会使用您的应用程序,因为它会很烦人。
这里唯一的情况是当应用程序没有运行时,即使这样,如果连续的通知太多,苹果也只会发送最后一个通知。当应用程序处于任何其他状态时(background
, foreground active & inactive
, suspended
),可以使用静默方式处理通知content-available : 1
在您的推送通知中。如果您担心这一点,只需使用徽章通知而不是警报通知即可。
- 用户还可以禁用您的应用程序的推送通知,这样您就不能依赖它作为唯一的通信方式。
这是错误的,这不会阻止通知发送到手机,只是不会向用户显示。看here https://stackoverflow.com/questions/11045406/apple-push-notification-registration-device-token-receive-clarification。因此,即使用户禁用了推送通知,您也可以处理静默通知。这只是一个设置,设备仍将具有设备令牌,并且后端仍将能够发送推送通知。
然而..
确实,某些远程通知可能无法传递,并且使用其内容并不是一个好主意。但这不是一个大问题..
最好的方法是使用您的通知作为refresh me I got a new message
种通知。一旦收到新通知,请向服务器询问此聊天中的新消息,并更新表。我们已经在我们的一个项目中实现了这一点,并且对迄今为止的结果非常满意。有人说Premature Optimization is the root of all evil
,在这种情况下,您可能会花费大量时间使用套接字,但您可以通过推送通知立即启动并运行。稍后优化。
这很好用:
{
"aps" : {
"content-available" : 1,
"alert" : "This is my new notification",
}
"conversationId": 23,
"senderId":44
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)