2

考虑我的 Jabber 服务器上有 2 个用户 Alice 和 Bob。要将订阅添加到名册中both,我需要执行以下步骤:

  1. Alice 向 Bob 发送订阅请求。

  2. 当 Bob 收到请求时,他会批准它。

  3. Bob 也可能对 Alice 的存在感兴趣,所以他订阅了她。

  4. Alice 需要批准 Bob 的请求。

现在考虑,Bob 不在服务器上,即他未注册,Alice 试图将他添加到她的名册中。

以下是将要执行的步骤:

  1. Alice 向 Bob 发送订阅请求。

  2. Bob,未注册,没有收到请求。

  3. Alice->Bob 订阅设置为None.

  4. 流程到此结束。

现在,鲍勃自己注册了。爱丽丝如何知道鲍勃自己注册了并且她需要subscription再次发送请求或者鲍勃如何将通知推送给将他添加到他/她的名册中的每个用户?哪个XEP/Ejabberd 模块可以处理这个问题?

我们调试了 Whatsapp 并了解到,在这种情况下,Bob 会向所有将他添加到他们的名单中的用户推送通知。

4

1 回答 1

0

嗯,我看到它的方式更像是,在设置环境时,您会采用哪种类型的配置,因为有几个场景会考虑因素。以下是我知道这些事情可能会发生的几种方式。

  1. 有问题的服务器在连接中起着关键作用Xmpp客户端,在诸如互联网上的DNS服务器在互连客户端中扮演着突出的角色,所以如果Bob在Alice发送请求时没有注册,他可能有一个缓存服务,记录了所有的互连服务,当他注册后,他有一个 Xmpp 服务,可以自动发现网络上的对等点(就像我说的那样,这将是特定于用户的),但是发现过程中必须涉及某种类型的用户设置;然后,他的服务将从缓存中提取所有过去的请求,并根据时间限制检索 Alice 的请求,然后他可以做出响应。这更多是从哲学的角度来看。但是,如果您是开发人员,则可以为上述所有场景编写插件。如果您需要更多技术参数,我们可以讨论一下,例如您想在 Bobs 服务器上编写的发现方法的类型、您可能希望放在 Bobs 网络上的缓存引擎类型以及如何将其插入他的 Jabber 服务器等,这只是我自己的两分钱。只需考虑与登录时拥有数据包收集器并检索离线消息的情况有点相似,但在这种情况下,它将包含 Jabber 服务器,而数据包收集器将是您插入服务器的缓存服务引擎。

  2. 如果它是一个 LAN,它可能会更难以像检索主机记录和所有互连问题一样动态,但我可以召集的合理解决方案是抢占所有可用的联系人,或者更好地继续操作一个特定的子网。

于 2017-03-01T13:08:50.123 回答