НавигацияВход для пользователейОблачкоПоследние комментарии
|
С чего начать написание транспортаДень добры! Цель такова: снизить затраты на мобильный трафик при общении с помощью IM. Имею: новый (бинарный) протокол и концепцию передачи сообщений между клиентами, которые позволяют экономить на накладных расходах в сообщениях. Сейчас поднял свой простенький IM-сервер, и написал java-клиент для него. В результате трафик телефон-сервер снижается примерно в 1,5-2 раза. При этом сравнивался средний суточный трафик при общении через Bombus (по случаю - респект автору), и через свой клиент. Проверено в действии и сейчас неплохо работает. Можно подключиться и сравнить, зайдя на molchat.in.ua с мобильного телефона (если такого рода реклама здесь неуместна, просьба к модераторам удалить ссылку). Но... Теперь, собственно, суть проблемы. Хотелось бы общаться с джаббер-клиентами, но с маленьким трафиком. Т. е. необходимо, видимо, либо написать транспорт для существующего джаббер-сервера (установил и запустил у себя ejabberd), либо конвертировать сообщения моего сервера и отправлять их в джаббер-сеть, а принятые конвертировать обратно. Вопрос к спецам: что из этого сделать проще, и... пошлите меня куда-нибудь, почитать инструкции по этому поводу :) Спасибо. Валентин.
Опубликовано lsync@jabber.ru в пн, 2008-03-17 14:09. categories [ ]
|
Re: С чего начать
Имеет ли смысл городить огород, если в XMPP есть stream compression + в настоящее время обсуждается возможность внедрения EXI, предложенная гугльтоком?
--
JID для связи: xmpp:kostix@007spb.ru
Да, огород
Да, огород городить стоит.
Прежде всего, за ссылочку про EXI спасибо. Про него я еще не слышал. Идея - супер, гугловцы (если это действительно с их подачи), как всегда, на высоте.
Только сжатие работает для мало-мальски больших потоков даных, а в чат-режиме в отношении одного клиента эти потоки невелики (в среднем - 40-60 байт на сообщение).
Получаем, например, при передаче смайла:
2 байта смайл (сообщение),
15-25 байт адресат и служебная информация,
от 20 байт - заголовок TCP/IP пакета.
Сжимать особо нечего, но заменив адресата на его номер (1-2 байта), получаем 2х экономию трафика на коротких сообщениях.
Дело не только в сжатии. Например, хочу нагрузить сервер поиском смайлов в сообщениях. Зачем? Энергию телефона поэкономить. Кто был в длительном походе знает, что такое лишняя минутка на связи. Или без неё.
Еще одно - катаясь по городу, связь периодически пропадает. Не хотелось бы каждый раз загружать весь ростер после разъединения.
...и еще несколько мелочей, в целом и дающих выигрыш по трафику и экономии энергии как телефона, так и пользователя. Поэтому, думаю, пусть сервер занимается перекодировкой в нормальный XMPP.
Вот и требуется транспорт.
Re: Да, огород
Думаю, ты не учитываешь всего один интересный момент, который запросто может обрушить все эти построения: дело в том, что в аббревиатуре "XMPP" ключевым словом является "eXtensible".
Объяснённое "на пальцах", это значит следующее: любой участник сети XMPP обязан поддерживать только базовый спек (RFC 3920), а весь остальной XML, который он в потоке не понимает, он должен игнорировать. Это позволяет серьёзно расширять протокол, не выходя за рамки совместимости.
Соответственно, "бинарный аналог" XMPP должен как-то учитывать сей факт. А вариантов лично я вижу немного:
--
JID для связи: xmpp:kostix@007spb.ru
Транспорт для ejabberd
Думаю, наиболее подходит определение "совсем тупой" протокол. Он должен реальзовать только те возможности, которые знает именно данный конкретный клиент (тот, который будет экономить трафик), не более. Появляется возможность у клиента - добавляется на транспорт. Ручками, канеш. Примерно как транспорт в mail.ru, только с целью сэкономить средства и ресурсы.
Т. е., есть цель поэкономить, а не развить новый стандарт.
А запросы гуглу "транспорт для ejabberd" у меня ни к чему не приводят :( Видимо, не знаю нужной терминологии.
Re: Транспорт для ejabberd
XEP-0114.
--
JID для связи: xmpp:kostix@007spb.ru
Точно! Самое
Точно! Самое оно!
Компонент, а не транспорт или гейт! Спасибо!
По ходу действий наткнулся на еще одну очень интересную для себя вешь:
http://www.xmpp.org/extensions/xep-0237.html Наконец-то! :)