如何找到不在名册中的用户的存在?

Posted

技术标签:

【中文标题】如何找到不在名册中的用户的存在?【英文标题】:How to find presence of a user who is not in a roster? 【发布时间】:2015-09-03 05:47:16 【问题描述】:

如何找到不在用户名册中的某个用户的存在?我正在使用 strophe。发现存在是否需要用户在名册中?

【问题讨论】:

如果这意味着我必须你的rooster...,我不想成为用户 现在可以回答了吗? :D 我做不到,因为我仍然无法确定问题的正面或反面。 【参考方案1】:

XMPP roster 的目的是让服务器知道谁可以接收你的存在。

这意味着如果一个用户没有通过在他的名册中接受他来批准另一个用户看到该状态,则另一个用户无法看到/获得该状态。

这是 XMPP 的一个面向隐私的功能。

【讨论】:

【参考方案2】:

我发现通过调整服务器配置,这是可能的。通过在 openfire 服务器中使用 Presence 插件,我们可以做到这一点。存在插件是一种通过 HTTP 提供简单存在信息的服务。它可用于在网页上为用户或组件显示在线状态图标,或从 Web 服务轮询在线状态信息。

此示例请求 XML 格式的用户“jsmith”的存在:

http://example.com:9090/plugins/presence/status?jid=jsmith@example.com&type=xml

【讨论】:

好吧,在 ejabberd 中你也有一个 mod_web_presence。但它不是 XMPP。这是与服务器相关的功能,并且发生在流之外。

以上是关于如何找到不在名册中的用户的存在?的主要内容,如果未能解决你的问题,请参考以下文章

名册和存在

如何在名册中添加联系人而不在 xmpp 聊天中发送和接受订阅请求

XMPP名册存在

XMPP - 名册订阅说明

如何获得 openfire 订阅“to”名册状态?

无法通过使用 smack、openfire 获得名册