Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xmpp 从联系人列表中获取用户的状态_Xmpp - Fatal编程技术网

Xmpp 从联系人列表中获取用户的状态

Xmpp 从联系人列表中获取用户的状态,xmpp,Xmpp,我需要从联系人列表中获取用户的状态。 我使用openfire服务器。 在服务器上,我发送以下xml <iq type="get" from="dezhavi@domen.com" id="3"><query xmlns="jabber:iq:roster"/></iq> 并从服务器获取 <iq type="result" id="3" to="dezhavi@domen.com/webi"><query xmlns="jabber:iq

我需要从联系人列表中获取用户的状态。 我使用openfire服务器。 在服务器上,我发送以下xml

<iq type="get" from="dezhavi@domen.com" id="3"><query xmlns="jabber:iq:roster"/></iq>

并从服务器获取

<iq type="result" id="3" to="dezhavi@domen.com/webi"><query xmlns="jabber:iq:roster"><item jid="user1@im.onmetapoint.com" name="user1" subscription="both"><group>Friends</group></item></query></iq>
朋友
但是没有地位


如何获取用户状态?

要获取状态,应使用状态节

存在背后的信任或访问决策在IM系统中自然发生,因为 您批准的人员将自动添加到您的联系人列表(在中称为名册) XMPP),它通常是任何即时消息或实时消息的“主基地” 通信应用

此外,状态访问通常是双向的:您允许联系人查看您的状态 存在,你的联系人允许你看到他的存在。这是通过一个 订阅“握手”。如果握手成功完成, 结果是双方之间的双向存在订阅。 (XMPP服务器还将联系人添加到用户名册中,并将用户添加到联系人名册中。) 此过程中的花名册,以及管理订阅状态的状态机,请参阅[RFC 3921]了解完整说明。)

让我们看看订阅握手在实践中是如何工作的。 若要请求某人出席,请向他发送订阅请求,这是一个 订阅类型的节:

<presence from="alice@wonderland.lit" to="sister@realworld.lit" type="subscribe"/>

当目标收件人收到您的状态订阅请求时,他可以 批准(通过订阅类型的节)或拒绝(通过 节类型(未订阅):


正如您所想象的,要创建双向状态订阅 已批准原始订阅请求需要发送他的订阅请求 拥有:


通常,您的客户机会在此时自动回复,而不是要求您手动回复 批准反向请求:

<presence from="alice@wonderland.lit" to="sister@realworld.lit" type="subscribed"/>

一旦您订阅了另一个人的状态,您将自动收到通知 当另一方的网络或通信可用性发生变化时。这 状态通知采用无类型属性的节的形式(即隐式指示可用性):


xa
下兔子洞!
你读了吗?
<presence from="sister@realworld.lit" to="alice@wonderland.lit" type="subscribe"/>
<presence from="alice@wonderland.lit" to="sister@realworld.lit" type="subscribed"/>
<presence from="alice@wonderland.lit/rabbithole" to="sister@realworld.lit">
   <show>xa</show>
   <status>down the rabbit hole!</status>
</presence>