Editing VKontakte/Jabber

From JaWiki (Jabber/XMPP wiki)
Jump to: navigation, search

Warning: The database has been locked for maintenance, so you will not be able to save your edits right now. You may wish to copy and paste your text into a text file and save it for later.

The administrator who locked it offered this explanation: MediaWiki upgrading

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 3: Line 3:
 
== Общее ==
 
== Общее ==
 
* Отсутствие zlib сжатия.
 
* Отсутствие zlib сжатия.
* Отсутствие [[S2S]] не упоминаем как недостаток, потому что заявлено<ref>[http://twitter.com/vkontakte/status/18439413874 ответ] на [http://twitter.com/vladon/status/18438708179 вопрос]</ref> о планах его открыть.
+
* Отсутствие [[S2S]] не упоминаем как недостаток, потому что заявлено{{ref|url1}} о планах его открыть.
* Вопрос, зачем потребовалось реализовывать собственное серверное решение (VK XMPP) при наличии успешных проектов&nbsp;— [[ejabberd]], [[Openfire]], [[Prosody]]&nbsp;— остается открытым. {{цитата|После окончания тестирования мы планируем сделать открытым код самого XMPP-сервера ВКонтакте, написанного [http://vkontakte.ru/illarionov Олегом Илларионовым] на [[node.js]].|2=[http://vk.com/pages.php?id=27987544 vk.com/pages.php?id=27987544]}}
+
* Вопрос, зачем потребовалось реализовывать собственное серверное решение (VK XMPP) при наличии успешных проектов&nbsp;— [[ejabberd]], [[Openfire]], [[Prosody]]&nbsp;— остается открытым. {{цитата|После окончания тестирования мы планируем сделать открытым код самого XMPP-сервера ВКонтакте, написанного [http://vkontakte.ru/illarionov Олегом Илларионовым] на {{w|node.js}}.|2=[http://vk.com/pages.php?id=27987544 vk.com/pages.php?id=27987544]}}
 
Опыт других компаний указывает на то, что готовые решения предпочтительнее - [[Facebook]] выбрал [[ejabberd]], [[LiveJournal]] изначально использовал собственную разработку [[djabberd]], но в последствии мигрировал на [[ejabberd]].  
 
Опыт других компаний указывает на то, что готовые решения предпочтительнее - [[Facebook]] выбрал [[ejabberd]], [[LiveJournal]] изначально использовал собственную разработку [[djabberd]], но в последствии мигрировал на [[ejabberd]].  
 
* Заявлена поддержка TLS, SASL, XEP-0030, XEP-0092, XEP-0012, XEP-0202, XEP-0199, XEP-0158, XEP-0054, XEP-0085.
 
* Заявлена поддержка TLS, SASL, XEP-0030, XEP-0092, XEP-0012, XEP-0202, XEP-0199, XEP-0158, XEP-0054, XEP-0085.
 
* Изначально изменение статусов в клиенте приводило к изменению статуса на сайте, но в последующем это было изменено. Теперь статус для установки на сайте должен начинаться с точки.
 
* Изначально изменение статусов в клиенте приводило к изменению статуса на сайте, но в последующем это было изменено. Теперь статус для установки на сайте должен начинаться с точки.
 
* VK XMPP является прослойкой между VK API и XMPP клиентом.
 
* VK XMPP является прослойкой между VK API и XMPP клиентом.
** Общение напрямую с VK API несколько быстрее и информативнее, особенно в случае ошибок выполнения запросов.
+
** Общение напрямую с API несколько быстрее и информативнее, особенно в случае ошибок выполнения запросов.
 
** Весь HTTP трафик запросов остаётся на стороне сервера, что позволяет экономить пользовательский трафик.
 
** Весь HTTP трафик запросов остаётся на стороне сервера, что позволяет экономить пользовательский трафик.
  
 
== Особенности ==
 
== Особенности ==
=== Команды ===
 
VK XMPP сервер поддерживает несколько специальных текстовых команд:
 
* \history — покажет историю переписки (через пробел можно указать количество отображаемых сообщений)
 
* \delete — удаляет последнее сообщение
 
* \en — переводит далее введенный текст на английский язык (Google Translate)
 
* \ru — переводит далее введенный текст на русский язык
 
 
 
=== vCard ===
 
=== vCard ===
* Официальный лимит запросов данных - 2-3 в сек (экпериментально до 50)
+
* Официальный лимит запросов данных 2-3 в сек (экпериментально до 50)
 
* Для некоторых пользователей сервер по непонятным причинам может не выдавать vCard до повторной авторизации, никак не информируя об этом соответствующим iq ответом.
 
* Для некоторых пользователей сервер по непонятным причинам может не выдавать vCard до повторной авторизации, никак не информируя об этом соответствующим iq ответом.
 
* vCard также молча не возвращается если сервер на котором находится аватарка недоступен.
 
* vCard также молча не возвращается если сервер на котором находится аватарка недоступен.
* В качестве image/jpeg может прийти закодированная в base64 страничка HTML 404
+
* В качестве image/jpeg вполне может прийти закодированная в base64 страничка HTML 404
 
* Двойной пробел в ответном iq
 
* Двойной пробел в ответном iq
 
* vCard несёт в себе только:
 
* vCard несёт в себе только:
Line 30: Line 23:
 
** PHOTO - jpeg 50xN без прогрессии (либо HTML 404)
 
** PHOTO - jpeg 50xN без прогрессии (либо HTML 404)
 
** UID - vk ID пользователя
 
** UID - vk ID пользователя
* vCard всегда выдает тип изображения image/jpeg. На самом деле вконтактовский значок вопроса это gif. (реплика от ''Евгений Бенну Сагатов'')
 
  
 
=== Сообщения ===
 
=== Сообщения ===
* Официальный лимит отправки сообщений - 3 в сек.
 
 
* Сообщения самому себе запрещены.
 
* Сообщения самому себе запрещены.
 
* Невозможно отправить "0"
 
* Невозможно отправить "0"
 
* Невозможно отправить один и тот же текст подряд повторно (даже разным пользователям)
 
* Невозможно отправить один и тот же текст подряд повторно (даже разным пользователям)
* Содержат HTML спец. символы, а также HTML тэг &lt;br&gt;, причём тэг и сами спец. символы также кодируется спец. символами (&amp;amp;lt;br&amp;amp;gt;)
 
  
 
== Ошибки на уровне протокола ==
 
== Ошибки на уровне протокола ==
* presence/x хэш по разности которого нужно определять необходимость загрузки новой аватарки может содержать имя jpeg файла (вместо SHA1 хэша). рассылать хэш это задача клиента, а не серверной части, но поскольку аватарка берется с сервера (а не задается клиентом), то серверная часть принудитель петчит презенсы от клиента, чтобы получилось <presence><show>xa</show><x xmlns><photo>ЗДЕСЬ_ХЕШ</photo></x></presence>.
+
* presence/x хэш по отличности которого нужно определять необходимость загрузки новой аватарки может содержать имя jpeg файла (вместо SHA1 хэша)
 
* Нет прямых iq запросов (невозможно узнать информацию о клиенте собеседника)
 
* Нет прямых iq запросов (невозможно узнать информацию о клиенте собеседника)
* XEP-0085 используется лишь для отметки сообщений как прочитанных (на сайте), в полной же мере (информирование о наборе текста) расширение не поддерживается. XEP-0085 реализован фейково: оповещение приходит во время прочтения на сайте или же отправки оповещения на другой стороне. После этого, последующая отправка пауз и композов к получению этих состояний на другой стороне не приводит.
+
* XEP-0085 используется лишь для отметки сообщений как прочитанных (на сайте), в полной же мере (информирование о наборе текста) расширение не поддерживается.
* Запрос roster'a игнорируется в случае, если у пользователя большое число друзей (экспериментально от 500)
+
* Содержат HTML спец. символы (&amp; &quote; и др.), а также HTML тэг <br>, причём тэг также кодируется спец. символами (&amp;lt;br&amp;gt;)
* namespace "jabber:iq:last" (XEP-0012) используется некорректно - возвращает статусное сообщение пользователя.
+
  
 
== Ошибки в реализации серверной части ==
 
== Ошибки в реализации серверной части ==
Line 51: Line 40:
  
 
== Примечания ==
 
== Примечания ==
 
+
# {{note|url1}} [http://twitter.com/vkontakte/status/18439413874 ответ] на [http://twitter.com/vladon/status/18438708179 вопрос]
<references/>
+

Please note that all contributions to JaWiki (Jabber/XMPP wiki) may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see JaWiki (Jabber/XMPP wiki):Copyrights for details). Do not submit copyrighted work without permission!

Cancel | Editing help (opens in new window)

Template used on this page: