连接到ejabberd服务器和应用程序服务器

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

我有一个ejabberd服务器,我正在尝试在我的Angular / NodeJS应用程序中构建一个聊天模块。

Currenlty,我的Angular应用程序直接连接到聊天服务器。假设我的roster有100个联系人,包括onlineoffline联系人。我需要将所有100个联系人映射到我的应用程序服务器中的用户,以获取更多详细信息,如companyIdemailcontact等。

我是否必须遍历每个联系人并将API调用到应用程序服务器?这不会给前端带来很大的负担吗?有没有更好的方法来实现这一目标?

如果我的问题很愚蠢,请道歉。我是XMPP的新手。

angularjs node.js xmpp ejabberd
2个回答
0
投票

有几种方法可以做到这一点。

您可以从API中获取每个用户,对其进行缓存,以便下次您不必获取所有数据,但这不是最佳解决方案。

另一个解决方案是通过将所有id传递给您的节点应用程序来使所有联系人只需一次调用。然后,节点应用程序可以从您的数据库中获取所有需要的数据,并使用一个请求而不是100来传回。


0
投票

或多或少相同的问题,我使用jabber搜索来获取所有用户并存储在客户端上用于整个会话。

我的回复是“所有用户都可以与所有其他用户聊天”(服务器上约100个用户),

如果您不是,我建议您创建一个自定义IQ并让服务器缓存Jabber搜索(在每次用户注册后更新)并在一次调用async中仅回复所需的数据。

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