我有一个ejabberd服务器,我正在尝试在我的Angular / NodeJS应用中构建聊天模块。
Currenlty,我的Angular
应用直接连接到聊天服务器。假设我的roster
有100个联系人,包含online
和offline
个联系人。我需要将所有100个联系人与我的应用程序服务器中的用户进行映射,以获取更多详细信息,例如companyId
,email
,contact
等。
我是否必须遍历每个联系人并将API调用到应用程序服务器?不会对前端造成太大负担吗?有没有更好的方法来实现这一目标?
如果我的问题很愚蠢,请道歉。我是XMPP
的新手。
答案 0 :(得分:0)
有几种方法可以做到这一点。
您可以从API获取每个用户,对其进行缓存,以便下次您不必获取所有数据,但这不是最佳解决方案。
另一种解决方案是通过将所有id传递给您的节点应用程序来使所有联系人只需一次调用。然后,节点应用程序可以从数据库中获取所有需要的数据,并使用一个请求而不是100来传回。
答案 1 :(得分:0)
或多或少相同的问题我使用jabber搜索来获取所有用户并存储在整个会话的客户端。
我对其进行了回复"所有用户都可以与所有其他用户聊天" (服务器上大约有100个用户),
如果不是,我建议你创建一个自定义IQ并让服务器缓存Jabber搜索(在每次用户注册后更新)并在一次调用中仅回复所需的数据,async。