Избор на правилна реализация на протокола за чат

Опитвам се да създам базирано на форум приложение за групов чат на android. Трябва да мога да рисувам и изпращам гласови съобщения чрез чат.

Объркан съм между IRC и XMPP за използване на протокол за чат. Може ли някой да ми предложи в това отношение.

Чувствам, че IRC е по-добър за моето приложение, тъй като е предназначен главно за групова комуникация в дискусионни форуми, но не съм сигурен дали IRC поддържа нещо друго освен текстови съобщения.


person heboy    schedule 27.02.2013    source източник
comment
Не знам как това е различно от чат стаите в XMPP. Което също така поддържа различни прехвърляния на глас и други двоични данни.   -  person Robin    schedule 27.02.2013


Отговори (1)


Можете да изпращате всякакъв вид двоични данни (изображения, звук и т.н.) в обикновен текст, като използвате системи за кодификация, като Base64 например.

Трябва да се погрижите избраният домейн на знаци за кодиране да не се сблъсква с метода на вашия протокол за разделяне на съобщения. Друг често срещан проблем е размерът на протокола за съобщения, който позволява. Може би трябва да внедрите някакъв тип съобщение на парчета в протокола и някакъв MIME, който описва двоичното съдържание.

Тук можете да намерите списък с общи стандарти за кодиране на B2T.

За рисуване в "реално време" най-простото решение е да изпратите моментна снимка на клиентите, като текущото изображение се рисува в клиента на чекмеджето. Ако го направите 10 пъти в секунда, получавате анимация на рисунката с 10 кадъра в секунда. За оптимизиране има техника, наречена Delta encodig, понякога наричана Delta компресия. Това е начин за съхраняване или предаване на данни под формата на разлики между последователни данни (в този случай изображение), а не цели файлове. И така, в клиента, вие посочвате само разликите между два "кадъра" и единственото нещо, което трябва да направите в клиента, е да "слеете" текущия "кадър" с разликата, за да покажете следващия "кадър".

person jlvaquero    schedule 27.02.2013