Xmpp 从联系人列表中获取用户的状态
我需要从联系人列表中获取用户的状态。 我使用openfire服务器。 在服务器上,我发送以下xmlXmpp 从联系人列表中获取用户的状态,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
<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>