Difference between revisions of "XEP-0196: User Game"

From JaWiki (Jabber/XMPP wiki)
Jump to: navigation, search
(Механизм: исправление перевода)
(Контейнер и его элементы: исправление перевода)
Line 27: Line 27:
 
Информация об играх устанавливается пользователем (или автоматически, за счёт интеграции с играми) и передаётся в сеть [[клиент|клиентским ПО]]. Для описания игровых данных используется контейнер <game/>, с указанием пространства имён «urn:xmpp:gaming:0». Информация об игре передаётся в следующих элементах контейнера <game/>:
 
Информация об играх устанавливается пользователем (или автоматически, за счёт интеграции с играми) и передаётся в сеть [[клиент|клиентским ПО]]. Для описания игровых данных используется контейнер <game/>, с указанием пространства имён «urn:xmpp:gaming:0». Информация об игре передаётся в следующих элементах контейнера <game/>:
  
<b>Таблица 1. Элементы</b>
 
 
{| 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
  |Дополнительный
+
  |НЕОБЯЗАТЕЛЬНО
 
  |}
 
  |}
  
: '''ПРИМЕЧАНИЕ:''' типы данных, указанных выше, определены в XML Schema Part 2.
+
;Примечание: указанные выше типы данных определены в [http://www.w3.org/TR/xmlschema-2/ XML Schema Part 2].
  
 
= Механизм =
 
= Механизм =

Revision as of 19:15, 4 June 2010


Внимание

Этот текст не является официальным переводом документа XEP-0196: User Game и может не соответствовать оригиналу. Для разработки программ используйте официальный текст.

Этот документ описывает расширение протокола XMPP для передачи информации об играх, в которые в данный момент играет пользователь.

Информация о документе

  • Автор: 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/>:

Таблица 1. Элементы
Элемент Описание Пример Тип Включение
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» (см. Пространства имён протоколовQuestion.gifПроверить: в оригинале битая ссылка касательно использования одного или более постоянных пространств имён) или обычный узел 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>