Difference between revisions of "IQ"
From JaWiki (Jabber/XMPP wiki)
m (→Ссылки: test) |
|||
| Line 1: | Line 1: | ||
| − | + | IQ (Info/Query) - особый вид [[stanza|станс]], реализующий механизм типа "запрос-ответ". Интерпретация IQ-[[stanza|станс]] позволяет [[Entity|"сущности"]] сделать запрос и получить ответ от другой [[Entity|"сущности"]]. Тип данных, передающихся в запросе или ответе определяет [[namespace]] дочернего элемента по отношению к IQ. | |
| − | Для прослеживания пути запросов-ответов используется аттрибут | + | |
| + | Для прослеживания пути запросов-ответов используется аттрибут "id", который является обязательным для IQ. | ||
== Типы IQ == | == Типы IQ == | ||
| − | + | Аттрибут "type", являющийся обязательным для IQ, определяет тип IQ: | |
| − | + | * get - запрос информации или требований; | |
| − | + | * set - передача требуемых данных, установка новых значений или замена существующих; | |
| − | + | * result - ответ на успешно выполненный запрос типа "set" или "get"; | |
| − | + | * error - при запросе произошла ошибка. | |
| − | + | ||
== Пример == | == Пример == | ||
| − | + | Вот типичный пример взаимодействия с использованием IQ: запрос версии клиента. | |
| − | Вот типичный пример взаимодействия с использованием IQ | + | |
* Запрос: | * Запрос: | ||
| Line 52: | Line 51: | ||
== Ссылки == | == Ссылки == | ||
| − | + | RFC 3920 | |
| − | + | ||
| − | + | ||
| − | + | ||
Revision as of 10:27, 15 September 2008
IQ (Info/Query) - особый вид станс, реализующий механизм типа "запрос-ответ". Интерпретация IQ-станс позволяет "сущности" сделать запрос и получить ответ от другой "сущности". Тип данных, передающихся в запросе или ответе определяет namespace дочернего элемента по отношению к IQ.
Для прослеживания пути запросов-ответов используется аттрибут "id", который является обязательным для IQ.
Типы IQ
Аттрибут "type", являющийся обязательным для IQ, определяет тип 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>