使用XMPP服务器和Google Cloud Messaging(或较新的Firebase Cloud Messaging)进行推送通知的Android聊天应用程序
我正在开发一个安卓版的聊天应用程序。几周来,我一直在阅读有关XMPP和Google Cloud Messaging(以及Firebase Cloud Messaging)的信息,我仍然非常困惑。
目前,我已经在本地设置了一个XMPP服务器(Ejabberd),并使用Smack库成功地将我的Android应用程序连接到它。
据我所知,我需要使用GCM或更新的FCM进行推送通知,所以我已经在Google Cloud Platform中创建了一个项目。我的Android应用程序也可以使用Smack库连接到它(而不是直接连接到我的XMPP服务器)。在我的服务器中,我有一个小型Java应用程序,它也使用Smack库连接到GCM。
一切都很好,直到这里。我最大的困惑是:如何将我的XMPP服务器与GCM一起使用以进行推送通知?我为服务器端实现找到的每个文档,示例,指南,教程都只是告诉我如何连接到GCM,但没有一个告诉我如何将XMPP服务器与GCM结合使用。我错过了什么?我的Java应用程序只是连接到GCM,从GCM接收和发送消息,但我的XMPP服务器只是坐在那里无所事事。实际上,我的Android应用程序和服务器Java应用程序仅使用GCM,而不是我的XMPP服务器。
我希望有人能帮助我从整体上理解这一点,我显然缺少一些实现这个实现的关键要素。