Difference between revisions of "XEP-0196: User Game"
(→Механизм: исправление перевода) |
(→Контейнер и его элементы: исправление перевода) |
||
Line 27: | Line 27: | ||
Информация об играх устанавливается пользователем (или автоматически, за счёт интеграции с играми) и передаётся в сеть [[клиент|клиентским ПО]]. Для описания игровых данных используется контейнер <game/>, с указанием пространства имён «urn:xmpp:gaming:0». Информация об игре передаётся в следующих элементах контейнера <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]. |
= Механизм = | = Механизм = |
Revision as of 19:15, 4 June 2010
Внимание Этот текст не является официальным переводом документа XEP-0196: User Game и может не соответствовать оригиналу. Для разработки программ используйте официальный текст. |
Этот документ описывает расширение протокола XMPP для передачи информации об играх, в которые в данный момент играет пользователь.
Contents
Информация о документе
- Автор: Peter Saint-Andre
- Издатель: © 1999 - 2010 XMPP Standards Foundation
- Статус: Отложен
- Тип: Основное расширение
- Версия: 0.3
- Последнее обновление: 2008-09-25
- ВНИМАНИЕ: Рассмотрение этого документа было отложено XMPP Standards Foundation. Реализация протокола, описанного здесь, не рекомендуется.
Введение
Механизм публикации-подписки (Publish-Subscribe) и PEP могут быть использованы для публикации разнообразной «расширенной информации о присутствии» пользователей. Этот документ определяет расширенный формат информации о присутствии, который позволяет передавать информацию об играх, в которые в данный момент играет пользователь. Эта информация может представлять интерес для других пользователей, а также может быть использована в социальных сетевых приложениях.
Протокол
Контейнер и его элементы
Информация об играх устанавливается пользователем (или автоматически, за счёт интеграции с играми) и передаётся в сеть клиентским ПО. Для описания игровых данных используется контейнер <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.
Механизм
Когда пользователь начинает играть, его клиент может опубликовать информацию об этом факте через 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>
Безопасность
Клиент должен предоставить пользователю возможность настроить, о каких играх информацию отправлять, а о каких нет.
IANA
Этот документ не требует взаимодействия с Internet Assigned Numbers Authority (IANA).
XMPP
Пространство имён
Эта спецификация использует пространство имён urn:xmpp:gaming:0
Версии пространства имён
Если протокол, определенный в данной спецификации, изменится и не будет полностью обратно совместимым с более ранней версиеё, XMPP передаёт номер версии протокола , который определён в четвёртой части пространства имён.
Схема XML
<?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>