Все самые свежие новости о MyChat. Обновления версий, анонсы новых сервисов, важные объявления, акции и скидки для покупателей. Информация о будущих версиях
Аватара пользователя
Алексей Пикуров
Как вы знаете, протокол обмена данными в MyChat закрыт и для сервера существует только официальный клиент. Подключиться чем-то другим к серверу MyChat, кроме как MyChat клиентом - нельзя.

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

1. Протокол будет основан на открытом стандарте JSON. Он прекрасно поддерживается как в браузерах (JavaScript), так и во многих (если не в большинстве) популярных средах программирования.
2. Протокол полностью поддерживает стандарт UNICODE.
3. Открытый протокол даст возможность всем желающим программистам создавать альтернативные клиенты для MyChat Server под любые операционные системы. Более того, можно будет работать с MyChat сервером не только из скомпилированных EXE, но и из скриптовых, интерпретируемых языков наподобие php, lua или python.
4. Новая версия протокола упростит работу старых версий клиентов. С сервером смогут "уживаться" несколько разных версий MyChat клиентов, не требуя обязательного обновления при изменениях протокола обмена данными при выходе новых версий сервера.

И это только малая часть преимуществ, которую даст введение нового, открытого протокола обмена данными.

В данный момент ведётся проектирование нового протокола, и вы сможете поучаствовать в этом интересном и крайне полезном деле. Все пожелания учитываются и обсуждаются.
Volldemar
Опубликуйте пожалуйста описание протокола на форуме, так как старый феедбек не доступен.
Аватара пользователя
Алексей Пикуров
Volldemar
Команда:
Код: Выделить всё
cs_ping 

С каким промежутком времени нужно пинговать сервер, что бы соединение считалось "живым" и не сбрасыловалось сервером?
В команде:
Код: Выделить всё
cs_hello

Есть поле:
Код: Выделить всё
"Interfaces"   : ["192.168.10.1","213.130.24.149"

Зачем перечислять все интерфейсы? Ведь соединение происходит по определённому и одному.
Аватара пользователя
Алексей Пикуров
cs_ping выполняется, если от клиента к серверу и обратно не было никаких пакетов в течение одной минуты или более.

Зачем перечислять все интерфейсы? Ведь соединение происходит по определённому и одному.

Соединение происходит не "по" - а "на" интерфейс. Серверный. А передаются все адреса локальные на сервер для того, чтобы впоследствии, когда клиенты будут обмениваться файлами (возможно), чтобы они знали, на какие интерфейсы можно попробовать передавать файлы, чтобы соединение происходило напрямую, а не через сервер.
Volldemar
Всё равно, чёт не понятно мне...
Цитата:
2. cs_hello - команда-приветствие, отправляется от клиента при подключении к серверу. С этой команды начинается любое подключение к серверу.
0001 // шестнадцатеричный код команды
{
"ProtocolVer" : "2.0", // версия протокола клиента
"Client" : "win32", // тип клиента, который подключается к серверу. win32 - Windows-клиент.
"ServPass" : "123456", // пароль для подключения к серверу (если нужно). Если пароля нет - пустая строка
"MAC" : "00-17-31-57-6C-61", // MAC адрес клиента
"HardwareID" : "45678906546", // HardwareID клиента
"NetName" : "COMPOFFICE", // сетевое имя компьютера
"Ver" : "5.0", // версия клиентского приложения
"OS" : "Windows 7", // название и версия операционной системы клиента
"UTC" : 2 // UTC смещение времени подключающегося клиента
"Interfaces" : [ // список сетевых интерфейсов клиента
"192.168.10.1",
"213.130.24.149" ]
}

"Interfaces" : // список сетевых интерфейсов клиента
Список айпи адресов у клиента, да, может быть один, два и более, но МАК адрес есть только у аппаратного интерфейса, к примеру у ВПНа - нет мак адреса, тогда какой мак передавать? если к примеру есть две сетевухи и ВПН на одной из них.
Аватара пользователя
Алексей Пикуров
При чём тут VPN? Я говорю о локальных интерфейсах. Это физические интерфейсы. У клиента. Например, Ethernet порт, WiFi адаптер и т.п. Это не те адреса, которые "видит" сервер при подключении клиента.