如何使用ejabberd通过API层传递聊天应用程序的服务器

问题描述 投票:0回答:1

当前设置我正在尝试在Android上构建类似于聊天应用程序的WhatsApp。在托管在云上的后端中,我已经设置了一个Ejabberd Server。现在使用Android上的smack库,我可以通过我在云中设置的Ejabberd服务器连接其他用户并向其他用户发送消息。

上下文暂时可以正常工作,但是以后我可能想转到基于MQTT的自定义解决方案来代替Ejabberd进行聊天,这将迫使我所有的应用程序用户强制更新其App,因为应用程序现在在其源代码中已存储Ejabberd Server的URL并直接与其通信。

为了解决此问题,我试图创建一层API端点,以便所有通信都通过API层从客户端电话到ejabberd服务器进行。因此,明天如果我用自定义MQTT解决方案(用于扩展)替换Ejabberd服务器,那么我将不需要我的应用程序用户来更新应用程序,因为API端点具有相同的URL,并且我可以简单地在API层后面更改代码,从而使我永远不会依赖埃贾伯德。

TLDR:我面临的问题我没有获得有关如何创建API层的任何资源,而是让客户端电话直接与Ejabberd Server通信。问题是根据XMPP协议,客户端和Ejabberd服务器直接建立持久连接,因此如何在两者之间放置API层?到现在已经好几个礼拜了,我被困住了。

android api xmpp ejabberd instant-messaging
1个回答
0
投票

您不能真正在这两者之间放置API层,因为XMPP不像pubsub那样发布/订阅。...HTTP API也不利于聊天,因为客户端必须请求所有内容,而服务器不能推送任何内容。我建议您继续使用XMPP,因为它可以很好地扩展。

© www.soinside.com 2019 - 2024. All rights reserved.