








|
Конечно, многим будет интересно не только общее описание, но и конкретные возможности протокола. Ведь DMconnect - это не просто ещё один мессенджер, а децентрализованная система, где каждый сервер равноправен и может взаимодействовать с другими. Ниже перечислены основные преимущества DMconnect над другими мессенджерами:
- Общение между пользователями на разных серверах - независимо от того, где зарегистрирован ваш собеседник, вы можете связаться с ним напрямую через личные сообщения или поговорить на общем подсервере.
- Шифрование - DMconnect поддерживает зашифрованное общение между сервером и клиентом при помощи AES-256 и протокола Диффи-Хеллмана. Подробности читайте здесь.
- Создание собственного сервера - любой человек может развернуть свой собственный сервер DMconnect. Для этого не требуется сложная инфраструктура: достаточно запустить серверное ПО (небольшой скрипт на Python 3), и пользователи смогут регистрироваться на нём, общаться в личных сообщениях и создавать подсервера. Серверы могут свободно взаимодействовать друг с другом, образуя распределённую сеть без единого главного сервера, который можно выключить или заблокировать.
- Обратная совместимость - DMconnect всегда оставляет обратную совместимость даже со самыми старыми клиентами. Это значит, что даже если ваш любимый клиент в какой-то момент перестанет обновляться, он не перестанет работать - вы сможете продолжать общаться!
- Открытый и простой протокол - у протокола DMconnect существует официальная документация, которая поможет вам написать собственного бота буквально за пару минут. Кроме того, протокол очень простой - об этом смотрите чуть ниже.

Теперь перейдём к протоколу всего этого чуда. По сути, DMconnect прост настолько, насколько это возможно. Минимальный клиент на Python получится всего на 26(!) строк (см. инструкцию по созданию своего клиента). Объясним кратко: вы можете банально отправлять серверу "cырые" (/login, /register, /join_server, как дела и т. д.) сообщения, закодированные в UTF-8 (обязательно, любые другие кодировки не поддерживаются), т. е. алгоритм создания своего клиента / бота / автоответчика таков:
- Делаем подключение к серверу через сокет AF_INET и SOCK_STREAM.
- Делаем приемник сообщений от сервера (простой бесконечный цикл, который печатает (или делает что-либо ещё) все сообщения от сервера, например: client_socket.recv(1024).decode("utf-8").strip()).
- Создаём простейшую функцию keep-alive (отправка пакета "/" каждые 5 секунд).
- Отправляем серверу сообщение, например, client_socket.send("Hello World".encode("utf-8")).
- Готово!

Если вам интересны самые специфичиные подробности протокола DMconnect (вернее, это словарь команд и ответов на них от сервера) - существует документация.
А также, если вы заинтересовались, вот информация об адресах официального сервера:
147.185.221.19:42439 - адрес TCP;
dmconnect.hoho.ws:42439 - адрес TCP №2.
Оба адреса относятся к одному серверу, но тем не менее рекомендуется использовать именно второй адрес ввиду его большей стабильности соединения.
  
BitByByte, 2025.
|