Difference between revisions of "IQ"

From JaWiki (Jabber/XMPP wiki)
Jump to: navigation, search
(ну и примерчик вдогонку)
m (Iq moved to IQ over redirect: аббревиатура же)
 
(5 intermediate revisions by one other user not shown)
Line 1: Line 1:
IQ (Info/Query) - особый вид [[stanza|станс]], реализующий механизм типа "запрос-ответ". Интерпретация IQ-[[stanza|станс]] позволяет [[Entity|"сущности"]] сделать запрос и получить ответ от другой [[Entity|"сущности"]]. Тип данных, передающихся в запросе или ответе определяет [[namespace]] дочернего элемента по отношению к IQ.
+
'''IQ''' (Info/Query) — особый вид [[станс|стансов]], реализующий механизм типа «запрос-ответ». Интерпретация IQ-станс позволяет «[[сущность|сущности]]» сделать запрос и получить ответ от другой «сущности». Тип данных, передающихся в запросе или ответе определяет пространство имён (namespace) дочернего элемента по отношению к IQ.
  
 
+
Для прослеживания пути запросов-ответов используется аттрибут <tt>id</tt>, который является обязательным для IQ.
Для прослеживания пути запросов-ответов используется аттрибут "id", который является обязательным для IQ.
+
  
 
== Типы IQ ==
 
== Типы IQ ==
Аттрибут "type", являющийся обязательным для IQ, определяет тип IQ:
+
 
* get - запрос информации или требований;
+
Обязательный атрибут <tt>type</tt> определяет тип IQ:
* set - передача требуемых данных, установка новых значений или замена существующих;
+
; get   : запрос информации или требований;
* result - ответ на успешно выполненный запрос типа "set" или "get";
+
; set   : передача требуемых данных, установка новых значений или замена существующих;
* error - при запросе произошла ошибка.
+
; result : ответ на успешно выполненный запрос типа <tt>set</tt> или <tt>get</tt>;
 +
; error : при запросе произошла ошибка.
  
 
== Пример ==
 
== Пример ==
Вот типичный пример взаимодействия с использованием IQ: запрос версии клиента.
+
 
 +
Вот типичный пример взаимодействия с использованием IQ&nbsp;&mdash; запрос версии клиента.
  
 
* Запрос:
 
* Запрос:
Line 51: Line 52:
 
== Ссылки ==
 
== Ссылки ==
  
RFC 3920
+
* RFC 3920&nbsp;&mdash; 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]