XMPP获取房间当前在线用户列表
<iq>请求格式如下:
<iq to='staff158@chat.fayfox'
type='get'
id='userlist' xmlns='jabber:client'>
<query xmlns='http://jabber.org/protocol/disco#items'/>
</iq>
上面id是随便指定的(在绑定监听事件的时候有用),to的值是房间名。
利用Strophe构建这个iq请求,代码如下:
var iq = $iq({to: "staff158@chat.fayfox", type: "get", id: "userlist"})
.c("query", {xmlns: "http://jabber.org/protocol/disco#items"});
xmpp_chat.conn.send(iq);
服务器会返回指定房间的用户列表,格式如下
<body xmlns="http://jabber.org/protocol/httpbind">
<iq id="userlist" xmlns="jabber:client" from="staff158@chat.fayfox"
to="testuser@fayfox/30182775501359449544554420" type="result">
<query xmlns="http://jabber.org/protocol/disco#items">
<item jid="staff158@chat.fayfox/Jamal" name="Jamal"></item>
<item jid="staff158@chat.fayfox/Karma Hu" name="Karma Hu"></item>
<item jid="staff158@chat.fayfox/Lee" name="Lee"></item>
<item jid="staff158@chat.fayfox/Misty" name="Misty"></item>
</query>
</iq>
</body>