Как сделать свой мессенджер

Обновлено: 02.07.2024

Мессенджеров, которые стараются защищать приватность своих пользователей или даже предоставлять им анонимность, на самом деле больше, чем два.

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

Что за зверь такой

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

Поскольку Matrix — децентрализованный мессенджер, это значит, что нет единого сервера, который бы управлял его работой. И любой желающий может поднять свой сервак. Vive la Résistance!

Как работает

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

Чтобы полностью управлять своими данными и параметрами общения, естественно, нужно поднять свой сервер. В таком случае вы получаете god mode и можете делать всё что угодно. В том числе настроить маршрутизацию в другие протоколы и мессенджеры (IRC, XMPP, Discord, Telegram) или хостить ботов.

При этом не стоит забывать, что в Matrix настроено оконечное шифрование, и даже владелец сервера не может получить доступ к переписке.

Уже хочу. Как поставить?

Для начала вам понадобится скачать мессенджер с поддержкой Matrix либо перейти по этой ссылке, получить аккаунт и начать общаться прямо в браузере. Список нативных и сторонних клиентов под любые платформы доступен тут.

В мессенджере существует такое понятие, как комнаты. Для простоты понимания — это как публичные чаты Telegram. Просмотреть список комнат и их содержимое можно даже без регистрации. Но у меня через нативный клиент для Windows так сделать не получилось.


Как и в случае с Mastodon, юзернейм привязывается к выбранному серверу, что не мешает общаться с пользователями других серверов.

Рассказывать подробно про возможности клиентов Matrix я не буду. Во-первых, возможности могут различаться между клиентами и серверами. Во-вторых, этот мессенджер вы и так все знаете.






Ближайший аналог по возможностям — это Telegram. Есть переписки тет-а-тет, публичные и закрытые чаты, аудио и видеозвонки, боты. Всё это присыпано приватностью, шифрованием и прочими плюшками.

Как поднять свой сервер

Развернуть свой сервер Matrix относительно несложно, если вы уже делали что-то подобное. Для этого нужно обратиться к документации и развернуть копию Synapse.

Там же можно найти пошаговые инструкции для разворачивания сервера практически на любых системах и любых провайдерах.

Общение с внешним миром

Чтобы начать общение из Matrix-мессенджера с тем же Telegram, нужно построить мост по всем заветам Сэма Портера Бриджеса, если вы владелец сервера.

Для пользователей всё немного проще. В случае с Телеграм нужно перейти на страницу t2bot.io и выполнить все шаги из соответствующей инструкции.


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

На практике это оказалось правдой лишь отчасти. Да, придётся немного пострадать для общения с друзьями из Viber, Telegram и прочих мессенджеров. Но сам протокол, если его так можно назвать, поддерживает все современные фишки для удобного и простого общения.

Поэтому в теории каждый из вас может без проблем поднять свой сервер и переехать в Matrix без особых потерь в удобстве.


Публиковать могут пользователи с любым рейтингом. Однако!

Приветствуется:

• уважение к читателям и авторам

• простота и информативность повествования

• тег python2 или python3, если актуально

• код публиковать в виде цитаты, либо ссылкой на специализированный сайт

Не рекомендуется:

• допускать оскорбления и провокации

• распространять вредоносное ПО

• просить решить вашу полноценную задачу за вас

Без текста минус нахуй.

Эффективный способ открытия консервы

Истинная любовь

Истинная любовь Любовь, Виза, Картинка с текстом, Перевод

Майк нашёл любовь всей своей жизни за неделю до того, как закончилась его студенческая виза.


Про аккуратное мытьё вульвы

Про аккуратное мытьё вульвы Комментарии, Комментарии на Пикабу, Мат, Скриншот, Юмор


Логично

Логично


За чей счёт банкет?)

За чей счёт банкет?) Скриншот, Вино, Рафаэлло, Идеальный мужчина, Мужчины и женщины

В Самаре дети мигрантов толпой избили второклассницу

Сообщается, что девочку затолкали в сугроб и отпинали ногами — у ребенка позже диагностировали синяки по всему телу, ушибы мягких тканей груди, живота и бедер (притом, что на школьнице был толстый слой верхней одежды). В учебном заведении подтвердили факт избиения и пообещали провести проверку.

Многие не видели этого видео просто потому, что тогда ещё не родились.

Победа

Сидим вчера с женой на кухне, чаи гоняем.

Жена: У нас же скоро годовщина. Как отметим?
Я: Подожди, мы же отмечали уже в октябре.
Жена: Так мы отмечали годовщину наших отношений. А это годовщина нашей росписи в ЗАГСе
Я: А разница-то какая? Зачем два раза в год в принципе одно и тоже отмечать?
Жена: Ну в октябре это твоя ПОБЕДА, а в январе моя.

Ну в принципе логично :)

П.С. Жену люблю, вместе 13 лет, женаты 4 года :)

Не пойму, в каком месте меня обманули?


Традиция

Традиция

Шевелить плотву

Шевелить плотву Комментарии, Юмор, Порноактеры и порноактрисы, Косплей, Purple bitch


Не мамонты

Не мамонты

Ставки сделаны господа, ставок больше нет

Ставки сделаны господа, ставок больше нет Политика, Скриншот, Украина, Посольство


Когда сделал правильный выбор:-))

Когда сделал правильный выбор:-)) Авто, Квартира, Цены, Скриншот, Комментарии, Комментарии на Пикабу, Недвижимость, Пикабу, Автосалон


Сила маркетинга

Сила маркетинга

"Эгоизм прибрежных землевладельцев усиливается с каждым годом. Дай им волю, они бы совсем заперли реку Темзу. Они уже фактически делают это в притоках и каналах. Они вбивают в дно реки столбы, протягивают от берега до берега цепи и приколачивают к каждому дереву огромные доски с предупреждениями. Вид этих досок пробуждает во мне самые дурные инстинкты. Мне хочется сорвать их и до тех пор барабанить ими по голове человека, который их повесил, пока он не умрет. Потом я его похороню и положу доску ему на могилу вместо надгробного памятника.
Я поделился своими чувствами с Гаррисом, и Гаррис сказал, что с ним дело обстоит еще хуже. Ему хочется не только убить человека, который велел повесить доску, но перерезать всю его семью, друзей и родственников и потом сжечь его дом."

Кратко про госучреждения

У всех на слуху сейчас Telegram, Viber, WhatsApp, Skype и Slack. Это удобные мессенджеры, работают на смартфонах и компьютерах, в них есть куча всяких полезных штук, можно даже звонить, экономя деньги на международных переговорах.

Всё круто, кроме одного, очень важного момента.

Серверы этих мессенджеров находятся "где-то там, за океаном". Вы подключаетесь к ним через Интернет и пользуетесь тем, что вам дают, не больше и не меньше. Чем-то там управлять и контролировать вы их никак не можете.

Отсюда вытекает несколько неприятностей.

1. Вы зависимы от чужого сервиса

Блокировка Telegram в России

Если мессенджер "упадёт" хотя бы на сутки или его заблокируют по какой-то причине, как Telegram в России, — неудобства обеспечены. Люди привыкли общаться, обмениваться документами и фотками. Все было налажено и в один миг оказалось разрушено. Придётся строить схему работы с самого начала, но уже на базе другого мессенджера.

2. Вы не контролируете свой корпоративный мессенджер

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

К тому же, в большинстве мессенджеров, кроме Slack, не получится ограничить круг общения сотрудников только рабочими контактами, чтобы они не тратили зря своё рабочее время.

3. Ваша переписка вам не принадлежит

Именно по этой причине серьёзный бизнес не будет использовать бесплатные, публичные мессенджеры. Внешние контакты с клиентами — это одно, но люди не будут ради вас устанавливать себе тот мессенджер, который принят у вас в компании. Тут вам придётся пользоваться тем, что удобно и к чему привык ваш клиент.

Но для внутренних корпоративных коммуникаций — однозначно необходим только свой мессенджер, чтобы компания не зависела ни от кого.

4. Что делать?

Окей, страху нагнали. Выходит, использовать публичный мессенджер в коммерческих целях для серьёзной компании — нельзя. Но получить в своё пользование сервер мессенджера уровня WhatsApp или Telegram — это из разряда фантастики. Да и если бы это вдруг стало возможным, вряд ли у вас нашлась бы такая техническая площадка и специалисты, чтобы всю эту махину обслуживать. Из пушки по воробьям палить.

5. А такие мессенджеры есть?

Есть, и не один. В статье будем говорить о корпоративном мессенджере MyChat, который ведёт свою историю ещё с 2004 года, и уже давно работает по всему СНГ.


6. Как его установить?

В общем, на всё про всё вам понадобится минут 20. Без шуток.

Сначала качаете сервер с официального сайта, можно заказать бесплатную версию (максимум 20 онлайн-подключений). Для теста или для небольшой компании этого за глаза хватит. Установщик "весит" около 100 мегабайт.

Затем устанавливаете MyChat Server на любом компьютере внутри своей компании. Специального серверного железа для этого не надо, хватит и обычного офисного компьютера с Windows. В справке описано, как устанавливать сервер, по шагам.

После этого нужно подключиться к вашему серверу по IP адресу или доменному имени клиентским приложением, тут уже широкий выбор: Windows, Linux, macOS, Android и даже WEB. Качаем на сайте разработчика.

Можно скачать уже настроенный клиент прямо с вашего сервера, тут описано, как это сделать.

7. А как подключаться через Интернет к моему мессенджеру?

Тут всё просто, нужен внешний IP адрес, в статье про настройку работы MyChat через Интернет это подробно рассказывается.

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

Те сотрудники, которые физически находятся с сервером мессенджера MyChat в одной сети, подключаются к нему напрямую, по локальной сети или Wi-Fi.

8. Насколько это безопасно?

Чужой и бабка

Это серьёзный вопрос, потому что, раз уж вы хотите свой мессенджер, то вопросы безопасности уже не выйдет переложить на чужие плечи.

Трафик шифруется сеансовыми динамическими ключами по TLS1.2, используется OpenSSL. Помимо этого, все аудио и видео звонки также зашифрованы.

Кроме этого, в сервере MyChat есть фильтры по IP/MAC адресам и типам приложений, чтобы ограничить клиентские подключения из внешних сетей:


Написание кода (Server Side)

Создаем файл server.js, в него пишем:

Сервер написан, сохраняем

Написание кода (Client Side)

Создаем файл client.js, и пишем туда

Вот и все, это конечно не телеграмм, но для первого клиент-серверного приложения — пойдет

Понравилось? Поделись! Еще больше статей по разработке и безопасности на нашем Дзен канале: HellBytes

Читайте также: