XEP-0133: Запрос администратора на получение списка всех онлайн-пользователей

Я пытался использовать strophe.js с помощью метода iq, и я могу получить количество онлайн-пользователей, но я не могу получить список онлайн-пользователей с моего сервера Openfire 3.9.3.

Тело запроса XMPP:

<iq from='admin@localhost/7adf302e' to='admin@localhost' type='set' xml:lang='en' xmlns='jabber:client' id='6816:sendIQ'>
  <command xmlns='http://jabber.org/protocol/commands' node='http://jabber.org/protocol/admin#get-online-users-list' />
</iq>

Ответ XMPP

<iq xmlns="jabber:client" type="error" id="6816:sendIQ" from="admin@localhost" to="admin@localhost/7adf302e">
  <command xmlns="http://jabber.org/protocol/commands" node="http://jabber.org/protocol/admin#get-online-users-list"/>
  <error code="404" type="cancel">
    <item-not-found xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
  </error>
</iq>

Ссылка: http://xmpp.org/extensions/xep-0133.html#get-online-users-list


person Pandiarajan    schedule 09.10.2014    source источник


Ответы (1)


Как описано в XEP-0050, ответ с ошибкой item-not-found на командный запрос означает, что " отвечающий JID не может найти запрошенный командный узел", т.е. сервер не поддерживает команду для получения списка онлайн-пользователей.

При беглом взгляде на исходный код Openfire кажется, что он поддерживает Получить список активных пользователей на узле http://jabber.org/protocol/admin#get-active-users. Похоже, что эта команда просто возвращает пользователей, подключенных к серверу, поэтому я не уверен, отличается ли это каким-либо образом от команды «получить всех онлайн-пользователей» в этом случае.

person legoscia    schedule 09.10.2014
comment
Ссылаясь на XEP-0050, я могу получить список всех команд администратора. Но мне нужно выполнить дополнительную команду, описанную в XEP-0133. Есть ли способ добавить больше команд? - person Pandiarajan; 09.10.2014
comment
Это зависит от того, какой сервер вы используете. - person legoscia; 09.10.2014
comment
Я использую сервер Openfire 3.9.3. - person Pandiarajan; 09.10.2014
comment
Похоже, в Openfire есть альтернативная команда; см. обновленный ответ. - person legoscia; 09.10.2014