JuggleIM: сервер для мгновенных сообщений с поддержкой WebSocket и REST API

JuggleIM — это высокопроизводительный и масштабируемый сервер для мгновенных сообщений, написанный на Go. Он позволяет создавать приватные чаты, группы, чатрумы и предоставляет WebSocket и REST API для интеграции в приложения.

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

Запуск сервера осуществляется с использованием Go версии 1.25.12, и для развертывания доступны подробные инструкции в документации. Обратите внимание, что проект всё еще активно развивается, и его функционал может изменяться.

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

JuggleIM поддерживает множество сценариев использования, включая социальные приложения, системы обслуживания клиентов, коммуникацию с IoT-устройствами, чат во время live-трансляций и взаимодействие с AI-ботами. Одной из ключевых особенностей является поддержка многопользовательской (multi-tenant) архитектуры, что позволяет одной установке обслуживать несколько изолированных приложений. Профессиональное издание системы может масштабироваться горизонтально и поддерживать сотни миллионов активных пользователей в день.

Ключевые особенности

  • Поддержка протоколов Protobuf и WebSocket для низкого потребления трафика и высокой пропускной способности.
  • Возможность кластерного развертывания, поддерживающего масштабирование без ограничений.
  • Обеспечение безопасности с использованием токенов для аутентификации и HTTPS/WSS для защиты передачи данных.
  • Поддержка развертывания в облаках, а также возможность глобальной оптимизации ссылок для приложений, работающих на международном уровне.
  • Наличие SDK для различных платформ (Android, iOS, Web, PC, Flutter и HarmonyOS) и обширный REST API для интеграции с существующими системами.

Установка и запуск

Для быстрого развертывания JuggleIM с использованием Docker выполните следующие команды:

git clone https://github.com/juggleim/im-server.git
cd im-server
docker compose up -d

После успешного запуска контейнеров, локальные сервисы будут доступны по следующим адресам:

  • API сервера: http://127.0.0.1:9001
  • Навигатор: http://127.0.0.1:9002
  • WebSocket: ws://127.0.0.1:9003
  • Административная консоль: http://127.0.0.1:8090 (логин: admin, пароль: 123456)

Для остановки локальной установки используйте команду docker compose down. Чтобы удалить данные MySQL, добавьте -v к команде.

Ограничения

Хотя JuggleIM предлагает высокую производительность и гибкость, пользователю необходимо учитывать несколько нюансов:

  • Для успеха развертывания сервера требуется правильно настроенная база данных MySQL, а также опционально MongoDB, если вы решили использовать его для хранения сообщений.
  • Дополнительную настройку может потребоваться для поддержания подключения и безопасности при публичном доступе к сервисам.
  • Некоторые компоненты, такие как desktop SDK, на данный момент не являются открытыми и доступны только по запросу.

С подробной информацией о конфигурации, архитекотуре и интеграции можно ознакомиться в документации на официальном сайте JuggleIM.

Открыть на GitHub: juggleim/im-server →

Что нового на GitHub — короткие обзоры на русском Новые обзоры приходят в Telegram. Без спама, по делу.
Подписаться

Похожие статьи

Популярные темы на сайте