Difference between revisions of "IQ"
From JaWiki (Jabber/XMPP wiki)
(ну и примерчик вдогонку) |
m (jawikified) |
||
Line 1: | Line 1: | ||
− | IQ (Info/Query) | + | '''IQ''' (Info/Query) — особый вид [[stanza|станс]], реализующий механизм типа «запрос-ответ». Интерпретация IQ-станс позволяет [[Entity|«сущности»]] сделать запрос и получить ответ от другой «сущности». Тип данных, передающихся в запросе или ответе определяет [[namespace|пространство имён]] дочернего элемента по отношению к IQ. |
− | + | Для прослеживания пути запросов-ответов используется аттрибут <tt>id</tt>, который является обязательным для IQ. | |
− | Для прослеживания пути запросов-ответов используется аттрибут | + | |
== Типы IQ == | == Типы IQ == | ||
− | + | ||
− | * get | + | Обязательный атрибут <tt>type</tt> определяет тип IQ: |
− | * set | + | * <tt>get</tt> — запрос информации или требований; |
− | * result | + | * <tt>set</tt> — передача требуемых данных, установка новых значений или замена существующих; |
− | * error | + | * <tt>result</tt> — ответ на успешно выполненный запрос типа <tt>set</tt> или <tt>get</tt>; |
+ | * <tt>error</tt> — при запросе произошла ошибка. | ||
== Пример == | == Пример == | ||
− | Вот типичный пример взаимодействия с использованием IQ | + | |
+ | Вот типичный пример взаимодействия с использованием IQ — запрос версии клиента. | ||
* Запрос: | * Запрос: | ||
Line 51: | Line 52: | ||
== Ссылки == | == Ссылки == | ||
− | RFC 3920 | + | * RFC 3920 — XMPP Core |
+ | |||
+ | |||
+ | [[Category:Term]] |
Revision as of 15:43, 28 May 2007
IQ (Info/Query) — особый вид станс, реализующий механизм типа «запрос-ответ». Интерпретация IQ-станс позволяет «сущности» сделать запрос и получить ответ от другой «сущности». Тип данных, передающихся в запросе или ответе определяет пространство имён дочернего элемента по отношению к IQ.
Для прослеживания пути запросов-ответов используется аттрибут id, который является обязательным для IQ.
Типы IQ
Обязательный атрибут type определяет тип IQ:
- get — запрос информации или требований;
- set — передача требуемых данных, установка новых значений или замена существующих;
- result — ответ на успешно выполненный запрос типа set или get;
- error — при запросе произошла ошибка.
Пример
Вот типичный пример взаимодействия с использованием IQ — запрос версии клиента.
- Запрос:
<iq id='22' to='binary@jrudevels.org/Home' type='get' xml:lang='en'> <query xmlns='jabber:iq:version'/> </iq>
- Ответ:
<iq from='Binary@jrudevels.org/Home' to='Binary@dur-dom.net/Home' id='22' type='result' xml:lang='en'> <query xmlns='jabber:iq:version'> <name>Tkabber</name> <version>0.9.9-SVN-20070328 (Tcl/Tk 8.4.13)</version> <os>Gentoo Base System version 1.12.0_pre15 2.6.19-gentoo-r2</os> </query> </iq>
- Ответ в случае ошибки:
<iq from='Binary@jrudevels.org/Home' to='Binary@dur-dom.net/Home' xml:lang='en' id='22' type='error'> <query xmlns='jabber:iq:version'/> <error code='501' type='cancel'> <feature-not-implemented xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/> <text xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'>The feature requested is not implemented by the recipient or server and therefore cannot be processed.</text> </error> </iq>
Ссылки
- RFC 3920 — XMPP Core