XEP-0196: User Game
Внимание Этот текст не является официальным переводом документа XEP-0196: User Game и может не соответствовать оригиналу. Для разработки программ используйте официальный текст. |
Этот документ описывает расширение протокола XMPP для передачи информации об играх, в которые в данный момент играет пользователь.
Contents
Информация о документе
- Автор: Peter Saint-Andre
- Издатель: © 1999 - 2010 XMPP Standards Foundation
- Статус: Отложен
- Тип: Основное расширение
- Версия: 0.3
- Последнее обновление: 2008-09-25
- ВНИМАНИЕ: Рассмотрение этого документа было отложено XMPP Standards Foundation. Реализация протокола, описанного здесь, не рекомендуется.
Введение
Публичная подписка и PEP могут быть использованы для публикации "расширенной информации о присутствии" пользователей. Этот документ определяет расширенный формат присутствия, который позволяет передавать информацию об играх, в которые в данный момент играет пользователь. Эта информация может представлять интерес для других пользователей, а также может быть использована в социальных сетевых приложениях.
Протокол
Контейнер и его элементы
Информация об играх устанавливается пользователем (или автоматически, за счёт интеграции с играми) и передаётся в сеть. Для описания игровых данных используется контейнер <game/>, определяется с помощью пространства имён "urn:xmpp:gaming:0%22. Информация об игре передаётся в следующих элементах контейнера <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 | Адрес сервера, на котором играет пользователь | wow6.example.com | xs:string | Дополнительный |
server_name | Имя этого сервера | WOW Example | xs:string | Дополнительный |
uri | URI игры́ | http://wow.example.com/ | xs:anyURI | Дополнительный |
- ПРИМЕЧАНИЕ: типы данных, указанных выше, определены в XML Schema Part 2.
Механизм
Когда пользователь начинает играть, его клиент может опубликовать это через PEP "urn:xmpp:gaming:0%22 или общий узел 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>