Skip to content
This repository has been archived by the owner on Mar 14, 2023. It is now read-only.

Довести до ума реализацию XEP-0071: XHTML-IM #117

Open
ghost opened this issue Jul 13, 2016 · 0 comments
Open

Довести до ума реализацию XEP-0071: XHTML-IM #117

ghost opened this issue Jul 13, 2016 · 0 comments

Comments

@ghost
Copy link

ghost commented Jul 13, 2016

На данный момент реализация XEP-0071 в транспорте оставляет желать лучшего: для совместимости с кривыми клиентами (вроде PSI+ или Gajim) изображение в элементе передаётся по схеме "data". Однако, согласно XEP-0071, chapter 7.1 такой подход НЕ РЕКОМЕНДУЕТСЯ. Следует использовать либо ссылку на внешний ресурс (схемы "http", "https", "ftp"), либо, если изображение небольшое и позволяет уместить его в одной строфе, использовать XEP-0231: Bits of Binary (схема "cid").
Следование этому стандарту позволит сильно сэкономить трафик как сервера, так и клиента:

  1. При использовании внешней ссылки транспорту вообще, не придётся тратить свой трафик, т. к. он передаст только ссылку на расположение картинки на сервере вКонтакте, а клиент скачает её сам.
  2. При использовании BOB, клиент сможет кешировать изображение и его придётся передать ему только один раз. Если в следующий раз кто-то пришлёт стикер или картинку, которые данный клиент уже видел, он покажет картинку из кеша, а не будет запрашивать её у транспорта.

Кроме того, желательно изображения внутри сообщений также, присылать не в виде текста Photo: , а так же, как и стикеры, в виде тега через XHTML-IM. Но поскольку изображения обычно довольно большие, тут не стоит использовать BOB, а только ссылку на изображение на сервере. Также, неплохой идеей было бы завернуть тег в тег со ссылкой на оригинальное изображение.

Также, было бы неплохо (если API вК позволяет), превьюшку опубликованной ссылки тоже, отправлять в виде XHTML-отформатированного текста.

Поскольку некоторые особо кривые клиенты, поддерживающие XHTML-IM могут не поддерживать внешние ссылки или BOB для изображений, такое поведение следует сделать опциональным. Т. е. добавить транспорту следующие настройки:

  1. Send photos with XHTML-IM
  2. Send stickers with XHTML-IM:
    • As external links
    • As BOB links (if supported)
    • As data (not recommended by XEP-0071)

Если пользователь выберет вариант "As BOB links (if supported)", то присылать ему картинку по схеме "cid", только если его клиент поддерживает BOB, иначе - по схеме "data".

@mrDoctorWho mrDoctorWho added this to the 4.0 milestone Jul 13, 2016
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

1 participant