Пояснения по протоколам и мессенджерам,кратко и просто :показать

Для начала краткие и простые пояснения по протоколам и мессенджерам:

1 для обмена сообщениями есть два варианта
а) клиент1-сервер-клиент2
+ клиентам не надо искать друг друга и заморачиваться с соединением
+ можно отправлять сообщения когда второй клиент отключен - сообщения хранит сервер
- все сообщения идут через сервер а значит им контролируются
- недоступен сервер - связи нет.
- сервер как правило контролируешь не ты.

б) клиент1-клиент2
- заморочки с соединением - клиента ведь надо найти плюс установить соединение напрямую не всегда возможно
- проблема с отправкой сообщений в оффлайн
+ сообщения контролируешь только ты
+ нет единой точки отказа то бишь сервера


2 протокол это формат данных которые пересылаются между клиентами и клиентами и сервером
они бывают открытые и закрытые т.е. описание формата либо доступно всем
либо это собственность разработчиков и он может сменить его в любой момент,
а значит сторонние клиенты(не от владельцев протокола) перестанут работать и надо будет разбираться что они наворотили чтоб заработало

3 клиент это всего лишь программа которая передаёт-принимает сообщения,
есть такие которые поддерживают только один протокол, есть те что поддерживают несколько.

4 основные протоколы (вообще их кучу напридумывали )
аська, ICQ, мирабилис,aim - наиболее известный один из первых протоколов
протокол закрытый, неоднократно менялся, работает по схеме клиент-сервер

скайп,мейлру-агент,вайбер, вотсап - аналогичные протоколы
телеграм использует открытый протокол но серверная часть закрыта.
также вайбер вотсап и телеграм используют привязку к номеру телефона

у всех этих протоколов имеется единый сервер (в смысле у аськи свой у скайпа свой итд)

джаббер XMPP открытый протокол без привязки к телефону, работает также по схеме клиент-сервер с отличием в том что единого сервера нет,
есть множество серверов (можно установить и свой при желании - их куча,
есть с открытым исходным кодом) сервера могут обмениваться межжду собой
т.е. клиент1-сервер1-сервер2-клиент2

безсерверные протоколы (P2P) те, что по схеме клиент1-клиент2
пока еще находятся в стадии активной разработки, поэтому клиентов для них не очень много
из известных протоколов - bitmessage и Tox
у каждого есть свои плюсы и минусы связанные с решением проблемы установления соединения а ткже вариантов реализации клиентов


про токс (TOX): показать
итак про токс (TOX)
минусы протокола описанные выше успешно решены разработчиками
поиск контактов происходит через распределённую хэш таблицу (рассказывать долго, читаем в википедии про DHT)
соединение происходит напрямую а если это невозможно изза особенностей подключения то связь идет через других клиентов
все передаваемые сообщения шифруются на стороне клиента так что расшифровать их сможет только получатель.
(кратко про шифрование:
у каждого есть пара ключей открытый и закрытый
то что зашифровано открытым ключом нельзя расшифровть используя его же
только закрытым, соответственно мы можем сообщить всем свой открытый ключ с помощью которого
любой может отправить тебе зашифрованное сообщение которое сможешь расшифровать только ты.
соответственно я знаю отрытый ключ адресата, а адресат мой открытый и посторонний не может расшифровать наши сообщения.)
авторизация и индентификация в токсе постоена на том же принципе
при создании генерируется пара ключей
закрытый хранится в tox-файле, а открытый составляет часть toxID который мы сообщаем своим абонентам
токс файл можно зашифровать паролем чтоб если файл украли его нельзя было использовать.
также этот же файл можно переносить на другие устройств чтоб сохранить свой toxID
важно! если пароль забыт то восстановить не выйдет от слова совсем (не, конечно можно делать перебор но это займет очень много лет)

токс протокол поддерживает помимо передачи текста,
групповые чаты
передачу файлов
а также видео\аудио чат
но реализация этих возможностей зависит от используемых клиентов.
также изза особенностей протокола контакт-лист хранится локально и
соответственно при переустановке клиента нужно добавлять всех заново, впрочем проблема решается сохранением профиля.
еще одной особенностью потокола является необходимость подтверждения на добавление контакта,
без этого сообщения не принимаются. т.е. тот, кто отсутствует в вашем контактлисте не может отправить вам сообщение - только запрос
и уже после добавления его вам в свой контакт лист он сможет посылать сообщения.

также поддерживается и общение внутри локальной сети то есть без доступа в интернет.
дополнительно интереующие моменты про токс можно легко найти в интернете.


клиенты для TOX:показать
теперь о клиентах т.е. программах поддерживающих токс
qTox или μTox для Linux и Windows,
Antox — мобильный вариант для ОС Android
Antidote для iOS.
больше информации можно найти тут https://ru.wikipedia.org/wiki/Tox
и тут https://tox.chat/

внимание! перечисленные виндовс клиенты не работают под ХР
ну а теперь о проверенном лично
нормально работали со всеми фичами
isotoxin-isotoxin (про него будет ниже)
isotonxin-antox
у связки isotoxin-mirandaMG с установленным плагином для tox аудио-видео на момент проверки не работали только текст и файлы.

antox - клиент под андроид брать тут https://play.google.com/store/apps/details?id=chat.tox.antox
mirandaNG - мультипротокольны мессенджер http://www.miranda-ng.org/ru/
а тут плагин для неё http://wiki.miranda-ng.org/index.php?title=Plugin:Tox/ru

antidote клиент под iOS 8.0+ (не проверялся)
https://itunes.apple.com/us/app/antidote-for-tox/id933117605?mt=8
официальный сайт https://antidote.im/


Isotoxin - настройка: показать

ну и теперь про вкусняшку - Isotoxin
единственный клиент работающий под Win ХР (проверялось с SP3) и более новых
тем кому нужна портабельная версия качем отсюда но учтите что там может быть не последняя версия клиента
(обновляют с задержкой)
https://portableapps.com/apps/internet/isotoxin-portable
(портабельную не устанавливать в Program files!!)
официальная страница
http://isotoxin.im/
качаем тут
http://isotoxin.im/files/
под свою систему (для хр ессно х32)
также помимо tox протокола изотоксин поддерживает Jabber/XMPP и LAN


установили, запускаем Isotoxin:
1 если надпись под плюсом на английском то жмем на кнопку с шестерёнкой вверху и выбираем русский



2 потом жмем на плюс чтоб создать профиль


3 профиль создан,жмём ок


4 теперь создаем соединение нажав снова плюсик в центре


5 ВНИМАНИЕ!!! если планируете использовать XMPP/jabber то
создаём его первым иначе его настройки не сохраняются (это баг возможно потом поправят)


окошко настроек джаббера


окошко настроек Tox, если уже есть свой аккаунт то можно импортировать *.tox файл с ним


6 после добавления можно либо отключить проверку орфографии либо скачать словари


двойной клик - скачать. либо через правый клик


7 добавление контакта в контактлист(он слева)(жмем кнопку с головой и плюсиком)
наверху выбираем сеть потом вводим данные контакта
JID для джаббера или ToxId для TOX


8 по интерфейсу:

для перехода в это окошко жмем на прямоугольник слева вверху с надписью IsotoxinUser
эту надпись можно изменить правее - круглая кнопка с карандашом
под ней аналогично изменяется сообщение статуса
онлайн-оффлайн - пкм по иконке в трее
жмём правой кнопкой на tox id чтоб его скопировать для отправки кому либо
там же можно экспортировать этот аккаунт в *.tox файл для использзования в других клиентах
жмём на зелёненькую надпись онлайн - чтоб управлять конкретным протоколом(то что в трее для всех)
шестерёнка - настройки протокола(также доступны и через общие настройки)
при выборе контакта (слева) справа появится окошко чата
также можно пересылать файлы перетаскиванием в него
но может проблема с кириллицей и _- в имени (возможно поправят)
так что пока просто переименовываем или архивируем фал перед отправкой
изменить свой аватар можно клинув по головастику в правом окошке (там где ваш токс ид и настройки соединения)
в изотоксине есть вариант расшарить папку но работает довольно странно
по словам разработчика (кстати наш) оно работает так: после расшаривания всё содержимое папки отправляется к тому кому расшарил
после чего если добавить в ту папку файл то он автоматически скинется тому кому расшарил.
еще есть метаконтакты, создаются перетаскиванием одного контакта на другой.
также есть возможность создавать свои и править существующие темы оформления и звуков
для этого в папке изотоксина находим файл isotoxin.data и открываем его архиватором
после чего вытаскиваем нужное в ту же папку и правим. т.е. изотоксин смотрит наличие того что не в архиве и использует его
а если чегото нет то берёт из архива
loc - файлы локализации
smiles-наборы смайликов
sounds - звуковые схемы
themes - темы оформления(цвета значки)
html.html.template text.txt.template - шаблоны для экспорта истории
icon.svg - иконки изотоксина те что в трее и заголовке окна


9 TOX протокол поддерживает видеочатик
слева вверху кнопка с трубкой а при наведении появится и камера
они доступны если собеседник тоже из tox и в онлайне

окошко настроек видео например. также рекомендуется пробежаться по остальным.