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>