我想使用APNS创建一个iOS聊天应用。如果我有10,000个活跃且他们正在继续聊天,那苹果会阻止我的开发者帐户吗?对此有任何限制吗?
答案 0 :(得分:13)
“如果您在短时间内向同一设备或计算机发送多个通知,推送服务将仅发送最后一个通知。”
更多信息:http://developer.apple.com/library/ios/#technotes/tn2265/_index.html
但Apple不会阻止您的开发者帐户:)
答案 1 :(得分:13)
我不鼓励你使用APNS作为“聊天应用”的支柱。
如果您需要快速聊天功能,您应该编写自己的基于TCP套接字的服务器。
如果每隔几秒进行一次同步就是o.k.您可以使用基于HTTP的服务器后端(但是所有的拉动同步对网络流量来说都很难 - 所以TCP套接字仍然是更好的选择)。
您可以使用APNS进行后备 - 当您的某个设备上的应用没有响应时(即未连接到服务器),您可以通过APNS发送初始消息(唤醒您的应用和放大器) ;通知用户有等待他的消息)。
用户打开应用后,应立即切换回基于TCP套接字或HTTP请求的服务器通信。
关于你的问题:不,Apple很可能(人们永远不会知道)不会因为使用APNS进行聊天而拒绝你的应用程序。但请注意(正如其他人所说的那样):两个用户之间的消息会“丢失”如果他们会过于频繁地互动 - 请参阅Roman Barzyczak给你的链接。
答案 2 :(得分:6)
您可以将它们用于消息传递,但您很快就会发现无法保证它们会到达。这被称为推送通知的黑洞。 ; - )
答案 3 :(得分:1)
我喜欢这个answer here.
首先尝试使用仅限APNS的解决方案。
使您的推送通知无状态(它们仅用作"嘿,您在服务器中有一些新东西")。
因此,当客户端获得推送通知时,它会向服务器询问新数据(消息或其他内容)。
使用OneSignal来简化发送推送通知的代码(来自后端)。如果您的应用中的用户在10秒后收到消息,他不在乎您是否使用过TCP,socket.io或xmpp ......
即使Whatsapp的消息也可能需要几秒钟才能到达。
聊天应用不是实时游戏。最终用户可以接受几秒钟的延迟。