我一直在Android应用中使用GCM进行推送通知,但出于安全限制,我有义务避免使用GCM并使用本地推送服务器,我已经找到了很多这个问题的答案但是没有一个是结构良好的,我希望得到一个明确的答案,逐步使用一些XMPP服务器和客户端库来完成这个主题
答案 0 :(得分:1)
您可能无法完全理解什么是GCM以及GCM的设计目标。
传统上,每个桌面应用程序都建立自己的TCP连接到自己的服务器,就像您可以连接到您的Openfire实例并在没有任何第三方服务时发送/接收消息。
这种方法在移动环境中存在许多问题:
为了解决这些问题,Apple,Google(以及他们的次要竞争对手)提供“通知服务”。它们包括:
但是当你试图“避免GCM”时,你会得到所有关心的东西,加上:
您的“手工”持久性网络服务会干扰Google的一个,并且至少会双重网络和电池使用量(甚至更多,只是因为您的实施会有错误/其他角落已经由Apple / Google大型工程团队解决的案例
您的应用程序将变得更加复杂,并且您将面临更多安全问题(因为安全问题现在也由您处理)和糟糕的用户体验(具有“自有”网络的应用程序通常具有糟糕的UX设计,例如,提示和厌倦最终用户的网络错误消息。
所以,总结一下: