Difference between revisions of "IQ"
From JaWiki (Jabber/XMPP wiki)
(+RFC) |
|||
| (6 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
| − | IQ (Info/Query) | + | '''IQ''' (Info/Query) — особый вид [[станс|стансов]], реализующий механизм типа «запрос-ответ». Интерпретация IQ-станс позволяет «[[сущность|сущности]]» сделать запрос и получить ответ от другой «сущности». Тип данных, передающихся в запросе или ответе определяет пространство имён (namespace) дочернего элемента по отношению к IQ. |
| − | + | Для прослеживания пути запросов-ответов используется аттрибут <tt>id</tt>, который является обязательным для IQ. | |
| − | Для прослеживания пути запросов-ответов используется аттрибут | + | |
== Типы IQ == | == Типы IQ == | ||
| − | + | ||
| − | + | Обязательный атрибут <tt>type</tt> определяет тип IQ: | |
| − | + | ; get : запрос информации или требований; | |
| − | + | ; set : передача требуемых данных, установка новых значений или замена существующих; | |
| − | + | ; result : ответ на успешно выполненный запрос типа <tt>set</tt> или <tt>get</tt>; | |
| + | ; 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 | + | * RFC 3920 — XMPP Core |
| + | |||
| + | |||
| + | [[Category:Термины]] | ||
Latest revision as of 10:30, 21 April 2009
IQ (Info/Query) — особый вид стансов, реализующий механизм типа «запрос-ответ». Интерпретация IQ-станс позволяет «сущности» сделать запрос и получить ответ от другой «сущности». Тип данных, передающихся в запросе или ответе определяет пространство имён (namespace) дочернего элемента по отношению к IQ.
Для прослеживания пути запросов-ответов используется аттрибут id, который является обязательным для IQ.
Типы IQ[edit]
Обязательный атрибут type определяет тип IQ:
- get
- запрос информации или требований;
- set
- передача требуемых данных, установка новых значений или замена существующих;
- result
- ответ на успешно выполненный запрос типа set или get;
- error
- при запросе произошла ошибка.
Пример[edit]
Вот типичный пример взаимодействия с использованием 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>
Ссылки[edit]
- RFC 3920 — XMPP Core