Difference between revisions of "XEP-0196: User Game"
(→Введение: исправление перевода) |
m (→Версии пространства имён: Опечатка) |
||
(4 intermediate revisions by one other user not shown) | |||
Line 19: | Line 19: | ||
= Введение = | = Введение = | ||
− | + | Механизм [[Publish-Subscribe|публикации-подписки (Publish-Subscribe)]] и [[PEP]] могут быть использованы для публикации разнообразной «расширенной [[информация о присутствии|информации о присутствии]]» пользователей. Этот документ определяет расширенный формат информации о присутствии, который позволяет передавать информацию об играх, в которые в данный момент играет пользователь. Эта информация может представлять интерес для других пользователей, а также может быть использована в социальных сетевых приложениях. | |
= Протокол = | = Протокол = | ||
Line 25: | Line 25: | ||
== Контейнер и его элементы == | == Контейнер и его элементы == | ||
− | Информация об играх устанавливается пользователем (или автоматически, за счёт интеграции с играми) и передаётся в сеть. Для описания игровых данных используется контейнер <game/>, | + | Информация об играх устанавливается пользователем (или автоматически, за счёт интеграции с играми) и передаётся в сеть [[клиент|клиентским ПО]]. Для описания игровых данных используется контейнер <game/>, с указанием пространства имён «urn:xmpp:gaming:0». Информация об игре передаётся в следующих элементах контейнера <game/>: |
− | |||
{| class="standard" | {| class="standard" | ||
+ | |+ Таблица 1. Элементы | ||
!Элемент | !Элемент | ||
!Описание | !Описание | ||
Line 36: | Line 36: | ||
|- | |- | ||
|character_name | |character_name | ||
− | |Имя | + | |Имя пользовательского персонажа в игре |
|Stentor | |Stentor | ||
|xs:string | |xs:string | ||
− | | | + | |НЕОБЯЗАТЕЛЬНО |
|- | |- | ||
|character_profile | |character_profile | ||
− | |Игровой профиль | + | |Игровой профиль пользовательского персонажа |
|http''':'''//wow.example.com/profile.html?12345 | |http''':'''//wow.example.com/profile.html?12345 | ||
|xs:anyURI | |xs:anyURI | ||
− | | | + | |НЕОБЯЗАТЕЛЬНО |
|- | |- | ||
|name | |name | ||
Line 51: | Line 51: | ||
|Worlds of Warfare | |Worlds of Warfare | ||
|xs:string | |xs:string | ||
− | | | + | |ОБЯЗАТЕЛЬНО |
|- | |- | ||
|level | |level | ||
− | |Уровень | + | |Уровень пользователя в игре |
|66 | |66 | ||
|xs:string | |xs:string | ||
− | | | + | |НЕОБЯЗАТЕЛЬНО |
|- | |- | ||
|server_address | |server_address | ||
− | |Адрес сервера, на котором играет пользователь | + | |Адрес сервера (имя хоста или IP-адрес), на котором играет пользователь |
|wow6.example.com | |wow6.example.com | ||
|xs:string | |xs:string | ||
− | | | + | |НЕОБЯЗАТЕЛЬНО |
|- | |- | ||
|server_name | |server_name | ||
− | |Имя | + | |Имя сервера, на котором играет пользователь |
|WOW Example | |WOW Example | ||
|xs:string | |xs:string | ||
− | | | + | |НЕОБЯЗАТЕЛЬНО |
|- | |- | ||
|uri | |uri | ||
− | |URI игры́ | + | |URI игры́ или соответствующего сервиса |
|http''':'''//wow.example.com/ | |http''':'''//wow.example.com/ | ||
|xs:anyURI | |xs:anyURI | ||
− | | | + | |НЕОБЯЗАТЕЛЬНО |
|} | |} | ||
− | : | + | ;Примечание: указанные выше типы данных определены в [http://www.w3.org/TR/xmlschema-2/ XML Schema Part 2]. |
= Механизм = | = Механизм = | ||
− | Когда пользователь начинает играть, его клиент может опубликовать | + | Когда пользователь начинает играть, его клиент может опубликовать информацию об этом факте через [[PEP]]-узел с идентификатором (NodeID) «urn:xmpp:gaming:0» (см. ''Пространства имён протоколов'' {{fixme|в оригинале битая ссылка}} касательно использования одного или более постоянных пространств имён) или обычный узел [[PubSub]]. Поскольку информация об игре не является информаций о присутствии в изначальном смысле и может изменяться независимо от состояния доступности пользователя, её НЕ СЛЕДУЕТ использовать в качестве дополнения к [[станс|стансу]] типа <presence/>. |
<b>Пример 1. Публикация</b> | <b>Пример 1. Публикация</b> | ||
Line 100: | Line 100: | ||
Затем информация доставляется пользователям: | Затем информация доставляется пользователям: | ||
− | <b>Пример 2. Информация | + | <b>Пример 2. Информация доставляется подписчикам</b> |
<message from='stpeter@jabber.org' to='maineboy@jabber.org'> | <message from='stpeter@jabber.org' to='maineboy@jabber.org'> | ||
Line 129: | Line 129: | ||
</iq> | </iq> | ||
− | <b>Пример 4. Информация об остановке | + | <b>Пример 4. Информация об остановке доставляется подписчикам</b> |
<message from='stpeter@jabber.org' to='maineboy@jabber.org'> | <message from='stpeter@jabber.org' to='maineboy@jabber.org'> | ||
Line 157: | Line 157: | ||
== Версии пространства имён == | == Версии пространства имён == | ||
− | Если протокол, определенный в данной спецификации, изменится и не будет полностью обратно совместимым с более ранней | + | Если протокол, определенный в данной спецификации, изменится и не будет полностью обратно совместимым с более ранней версией, XMPP передаёт номер версии протокола , который определён в четвёртой части пространства имён. |
= Схема XML = | = Схема XML = |
Latest revision as of 15:31, 5 June 2010
Внимание Этот текст не является официальным переводом документа XEP-0196: User Game и может не соответствовать оригиналу. Для разработки программ используйте официальный текст. |
Этот документ описывает расширение протокола XMPP для передачи информации об играх, в которые в данный момент играет пользователь.
Contents
Информация о документе[edit]
- Автор: Peter Saint-Andre
- Издатель: © 1999 - 2010 XMPP Standards Foundation
- Статус: Отложен
- Тип: Основное расширение
- Версия: 0.3
- Последнее обновление: 2008-09-25
- ВНИМАНИЕ: Рассмотрение этого документа было отложено XMPP Standards Foundation. Реализация протокола, описанного здесь, не рекомендуется.
Введение[edit]
Механизм публикации-подписки (Publish-Subscribe) и PEP могут быть использованы для публикации разнообразной «расширенной информации о присутствии» пользователей. Этот документ определяет расширенный формат информации о присутствии, который позволяет передавать информацию об играх, в которые в данный момент играет пользователь. Эта информация может представлять интерес для других пользователей, а также может быть использована в социальных сетевых приложениях.
Протокол[edit]
Контейнер и его элементы[edit]
Информация об играх устанавливается пользователем (или автоматически, за счёт интеграции с играми) и передаётся в сеть клиентским ПО. Для описания игровых данных используется контейнер <game/>, с указанием пространства имён «urn:xmpp:gaming:0». Информация об игре передаётся в следующих элементах контейнера <game/>:
Элемент | Описание | Пример | Тип | Включение |
---|---|---|---|---|
character_name | Имя пользовательского персонажа в игре | Stentor | xs:string | НЕОБЯЗАТЕЛЬНО |
character_profile | Игровой профиль пользовательского персонажа | http://wow.example.com/profile.html?12345 | xs:anyURI | НЕОБЯЗАТЕЛЬНО |
name | Название игры | Worlds of Warfare | xs:string | ОБЯЗАТЕЛЬНО |
level | Уровень пользователя в игре | 66 | xs:string | НЕОБЯЗАТЕЛЬНО |
server_address | Адрес сервера (имя хоста или IP-адрес), на котором играет пользователь | wow6.example.com | xs:string | НЕОБЯЗАТЕЛЬНО |
server_name | Имя сервера, на котором играет пользователь | WOW Example | xs:string | НЕОБЯЗАТЕЛЬНО |
uri | URI игры́ или соответствующего сервиса | http://wow.example.com/ | xs:anyURI | НЕОБЯЗАТЕЛЬНО |
- Примечание
- указанные выше типы данных определены в XML Schema Part 2.
Механизм[edit]
Когда пользователь начинает играть, его клиент может опубликовать информацию об этом факте через PEP-узел с идентификатором (NodeID) «urn:xmpp:gaming:0» (см. Пространства имён протоколовПроверить: в оригинале битая ссылка касательно использования одного или более постоянных пространств имён) или обычный узел PubSub. Поскольку информация об игре не является информаций о присутствии в изначальном смысле и может изменяться независимо от состояния доступности пользователя, её НЕ СЛЕДУЕТ использовать в качестве дополнения к стансу типа <presence/>.
Пример 1. Публикация
<iq type='set' from='stpeter@jabber.org/work' id='gaming1'> <pubsub xmlns='http://jabber.org/protocol/pubsub'> <publish node='urn:xmpp:gaming:0'> <item id='1feea9cceec2537e1b561e66d45bc566e276f22f'> <game xmlns='urn:xmpp:gaming:0'> <name>chess</name> <uri>http://www.chesspark.com/</uri> </game> </item> </publish> </pubsub> </iq>
Затем информация доставляется пользователям:
Пример 2. Информация доставляется подписчикам
<message from='stpeter@jabber.org' to='maineboy@jabber.org'> <event xmlns='http://jabber.org/protocol/pubsub#event'> <items node='urn:xmpp:gaming:0'> <item id='1feea9cceec2537e1b561e66d45bc566e276f22f'> <game xmlns='urn:xmpp:gaming:0'> <name>chess</name> <uri>http://www.chesspark.com/</uri> </game> </item> </items> </event> </message>
Когда пользователь останавливает игру, необходимо отправить пустой элемент <game/> с таким же ItemID:
Пример 3. Игра останавливается
<iq type='set' from='stpeter@jabber.org/work' id='gaming2'> <pubsub xmlns='http://jabber.org/protocol/pubsub'> <publish node='urn:xmpp:gaming:0'> <item id='1feea9cceec2537e1b561e66d45bc566e276f22f'> <game xmlns='urn:xmpp:gaming:0'/> </item> </publish> </pubsub> </iq>
Пример 4. Информация об остановке доставляется подписчикам
<message from='stpeter@jabber.org' to='maineboy@jabber.org'> <event xmlns='http://jabber.org/protocol/pubsub#event'> <items node='urn:xmpp:gaming:0'> <item id='1feea9cceec2537e1b561e66d45bc566e276f22f'> <game xmlns='urn:xmpp:gaming:0'/> </item> </items> </event> </message>
Безопасность[edit]
Клиент должен предоставить пользователю возможность настроить, о каких играх информацию отправлять, а о каких нет.
IANA[edit]
Этот документ не требует взаимодействия с Internet Assigned Numbers Authority (IANA).
XMPP[edit]
Пространство имён[edit]
Эта спецификация использует пространство имён urn:xmpp:gaming:0
Версии пространства имён[edit]
Если протокол, определенный в данной спецификации, изменится и не будет полностью обратно совместимым с более ранней версией, XMPP передаёт номер версии протокола , который определён в четвёртой части пространства имён.
Схема XML[edit]
<?xml version='1.0' encoding='UTF-8'?> <xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema' targetNamespace='urn:xmpp:gaming:0' xmlns='urn:xmpp:gaming:0' elementFormDefault='qualified'> <xs:element name='game'> <xs:complexType> <xs:sequence minOccurs='0'> <xs:element name='character_name' type='xs:string' minOccurs='0'/> <xs:element name='character_profile' type='xs:anyURI' minOccurs='0'/> <xs:element name='level' type='xs:string' minOccurs='0'/> <xs:element name='name' type='xs:string'/> <xs:element name='server_address' type='xs:string' minOccurs='0'/> <xs:element name='server_name' type='xs:string' minOccurs='0'/> <xs:element name='uri' type='xs:anyURI' minOccurs='0'/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>