假设我的 Jabber 服务器上有 2 个用户 Alice 和 Bob。添加到名册中并订阅为both
,我需要执行以下步骤:
Alice 向 Bob 发送订阅请求。
当 Bob 收到请求时,他会批准该请求。
Bob 可能也对 Alice 的存在感兴趣,因此他订阅了她。
Alice 需要批准 Bob 的请求。
BUT
现在考虑一下,鲍勃不在服务器上,即他未注册,而爱丽丝尝试将他添加到她的名册中。
以下是将要发生的步骤:
Alice 向 Bob 发送订阅请求。
Bob 由于未注册,因此没有收到请求。
Alice->Bob 订阅设置为None
.
流程到此结束。
现在,鲍勃已经注册了。 Alice 如何知道 Bob 已注册并且她需要发送subscription
再次请求ORBob 如何向每个将他添加到他/她的名册中的用户推送通知?哪个XEP/Ejabberd 模块处理这个?
我们调试了 Whatsapp,发现在这种情况下,Bob 会向所有将他添加到名册中的用户推送通知。
嗯,我认为它更像是,当设置环境时需要考虑多种场景时,您会采用哪种类型的配置。以下是我知道此类事情可能会发生的几种方式。
有问题的服务器在连接中起着关键作用Xmpp
客户端,在诸如 Internet 上的 DNS 服务器之类的情况下,在客户端互连中发挥着重要作用,因此,如果 Bob 在 Alice 发送请求时没有注册,他可能有一个记录所有互连服务的缓存服务,并且当他注册后,他有一个 Xmpp 服务,可以自动发现网络上的对等点(就像我说的,这将是特定于用户的),但发现过程中必须涉及某种类型的用户设置;然后,他的服务将从缓存中提取所有过去的请求,并根据时间限制检索 Alice 的请求,然后他可以做出响应。这更多的是从哲学的角度来看。但如果您是开发人员,您可以为上面描述的所有场景编写插件。如果您需要更多技术参数,我们可以讨论,例如您想要在 Bobs 服务器上编写的发现方法类型、您可能想要在 Bobs 网络上放置的缓存引擎类型以及如何将其插入他的 Jabber 服务器等。 ,这只是我自己的两分钱。只需考虑一下与拥有数据包收集器并在登录时检索离线消息类似的情况,但在这种情况下,它将包含 Jabber 服务器,而数据包收集器将是您插入到服务器的缓存服务引擎。
如果它是一个 LAN,那么像检索主机记录和所有互连问题一样动态可能会有点困难,但我可以采取的合理解决方案是抢占所有可用的联系人,或者更好地继续操作特定的子网。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)