1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/juggleim-im-server

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

JuggleIM

Высокопроизводительная, масштабируемая и открытая система мгновенного обмена сообщениями (IM).

  • Официальный сайт: https://www.juggle.im
  • Вопросы: https://github.com/juggleim/im-server/issues
  • Документация: https://www.juggle.im/docs/guide/intro/

Обсуждение в сообществе

Если вы заинтересованы в IM или у вас есть вопросы по интеграции, очень рады видеть вас в нашем сообществе для обсуждения.

Telegram на русскомTelegram на английскомДобавить друга для присоединения к WeChat-группе

Примечание:由于微信群二维码有时间限制,加入微信讨论可优先加 小山 微信好友,由 Ta 邀请进群组

Особенности

  • Гибкие сценарии развертывания, поддерживаются публичные, частные и управляемые облака.
  • Протоколы Protobuf + Websocket обеспечивают долгосрочные соединения, низкий трафик, высокую производительность и хорошую связность в условиях нестабильной сети.
  • Высокая производительность, профессиональная версия поддерживает кластерное развертывание, бесконечное горизонтальное масштабирование, способна поддерживать приложения с миллиардами активных пользователей в день.
  • Шифрование данных и протоколов на всем пути передачи, исключает риск утечки данных.
  • Предоставляет удобные инструменты для операционного обслуживания и административную панель, простые в обслуживании.
  • Поддерживает SDK для Android, iOS, Web, PC и других платформ, предоставляет быстрые примеры интеграции и документацию.
  • Поддерживает одновременное подключение нескольких устройств и синхронизацию сообщений между ними, обеспечивая согласованность состояния на всех устройствах.
  • Поддерживает глобальное ускорение связи, может обслуживать приложения мирового уровня.
  • Предоставляет богатый набор API и WebHook, легко интегрируется с существующими системами.
  • Поддерживает группы с десятками тысяч участников, обеспечивает надежную связь без потери сообщений.
  • Поддерживает чат-комнаты для прямых трансляций без ограничений по числу участников.
  • Обладает возможностью интеграции с AI-роботами, легко подключается к большим моделям.

Быстрое развертывание и тестирование

Документация по развертыванию (https://www.juggle.im/docs/guide/deploy/quickdeploy/)

Ручное развертывание

1. Установка и инициализация MySQL

1) Установка MySQL

Пропущено

2) Создание экземпляра базы данных

CREATE SCHEMA `jim_db` ;

3) Инициализация структуры таблиц

Файл SQL для инициализации структуры таблиц находится в im-server/docs/jim.sql. Команда для импорта:

mysql -u{db_user} -p{db_password} jim_db < jim.sql

2. Установка MongoDB (опционально)

Пропущено

3. Запуск im-server

1) Директория запуска

Директория запуска — im-server/launcher. В директории conf находятся конфигурационные файлы, а в директории logs — логи работы службы.

2) Редактирование конфигурационного файла

Конфигурационный файл: im-server/launcher/conf/config.yml

defaultPort: 9003       # Порт по умолчанию для прослушивания im-server
nodeName: testNode      # Имя узла im-server
nodeHost: 127.0.0.1     # IP-адрес узла im-server
msgStoreEngine: mysql   # Конфигурация хранилища сообщений. Доступны два варианта: mysql (по умолчанию) — использование MySQL для хранения сообщений; mongo — использование MongoDB для хранения сообщений

log:
  logPath: ./logs       # Директория для хранения логов
  logName: jim-info     # Префикс имени логов
  visual: false         # Включение визуализации логов. При включении логи будут записываться в KV-базу данных, и их можно будет просматривать через интерфейс в разделе "Разработка -> Диагностика соединений" на административной панели;

mysql:                  # Конфигурация MySQL для im-server
  user: root
  password: 123456
  address: 127.0.0.1:3306
  name: im_db

# mongodb:                # Конфигурация MongoDB для im-server (используется для хранения сообщений). Опционально, применяется при выборе msgStoreEngine = "mongo";
#   address: 127.0.0.1:27017
#   name: jim_msgs        # Имя пространства имен MongoDB, коллекции будут автоматически созданы при запуске im-server;

# apiGateway:             # Порт API-сервера im-server для вызовов с серверной стороны приложений; необязательно, по умолчанию используется defaultPort
#   httpPort: 9001

# connectManager:         # Порт для долгосрочных соединений; необязательно, по умолчанию используется defaultPort
#   wsPort: 9003

adminGateway:           # Адрес административной панели im-server; по умолчанию логин/пароль: admin/123456
  httpPort: 8090

3) Запуск im-server

В директории im-server/launcher выполните следующую команду:

go run main.go

4) Настройка внешнего IP-адреса (домена/IP)

Необходимо настроить порты для внешнего доступа:

Порт Тип протокола Описание
9003 HTTP Порт для прослушивания API-сервиса сервера; используется сервером приложения, например, jugglechat-server;
9003 WebSocket Порт для прослушивания долгосрочных соединений; используется клиентским SDK для установки долгосрочного соединения (WebSocket) с IM-сервисом
8090 HTTP Порт для прослушивания административной панели IM-сервиса; по умолчанию логин/пароль: admin/123456

Способы настройки внешнего адреса не описываются подробно здесь; вы можете гибко настраивать их в зависимости от вашей среды (например, привязка к публичному IP-адресу, использование Nginx как обратного прокси, балансировка нагрузки и т.д.).

Примечание: Если вы используете систему только в локальной сети для тестирования, можно не настраивать внешний IP-адрес/домен, достаточно использовать внутренний IP-адрес.

5) Настройка адреса долгосрочного соединения в IM-системе

Настройка очень проста — достаточно добавить запись в базу данных:

insert into globalconfs (conf_key, conf_value) values('connect_address', '{"default":["127.0.0.1:9002"]}')

Замените 127.0.0.1 на внутренний IP-адрес машины или внешний публичный IP-адрес/домен. Это адрес долгосрочного соединения для клиентского SDK, который будет отправлен клиентскому SDK через службу навигации (8081).

4. Создание приложения (клиента)

JuggleIM — это многоклиентская система, в которой можно создавать несколько appkey (клиентов), данные между которыми изолированы и не влияют друг на друга.

Способ 1: Вход в административную панель и создание клиента

Планируется к доработке

Способ 2: Создание клиента через API управления

app_key используется для идентификации клиента и может быть задан пользователем; он должен быть уникальным в системе; app_name — имя клиента, также задается пользователем; Примечание: Здесь используется адрес административной панели IM-сервиса (8090); замените 127.0.0.1 на внутренний IP-адрес или публичный IP-адрес/домен.

curl --request POST \
  --url http://127.0.0.1:8090/admingateway/apps/create \
  --data '{
    "app_key":"appkey",
    "app_name":"appname"
}'

Пример ответа:

{
	"code": 0,
	"msg": "success",
	"data": {
		"app_name": "appname",
		"app_key": "appkey",
		"app_secret": "hciKcc6sXRDjYUQp"
	}
}

5. Вход в административную панель

Адрес административной панели: http://127.0.0.1:8090 Логин/пароль по умолчанию: admin/123456

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

6. Интеграция серверной части приложения/клиентского SDK

Здесь собраны все необходимые конфигурации для интеграции:

  1. Интеграция серверной части приложения
Конфигурация Пример Примечание
Адрес API IM-сервиса http://127.0.0.1:9003 Адрес API-интерфейса IM-сервиса для доступа с серверной части приложения; с помощью этого интерфейса можно регистрировать пользователей IM, создавать группы, отправлять системные сообщения и т.д.; документация по API доступна по ссылке: https://www.juggle.im/docs/server/api/
app_key appkey1 Идентификатор клиента приложения; создается на шаге 4; может быть задан пользователем, но должен быть уникальным в системе
app_secret hciKcc6sXRDjYUQp Секретный ключ для аутентификации клиента; генерируется автоматически при создании клиента; если хотите задать его самостоятельно, убедитесь, что он состоит из 16 символов; важно не раскрывать этот ключ на стороне клиента
  1. Интеграция клиентского SDK
Конфигурация Пример Примечание
Адрес подключения IM-сервиса ws://127.0.0.1:9003 Адрес подключения к IM-сервису; передается клиентскому SDK при его инициализации; документация доступна по ссылке: https://www.juggle.im/docs/client/quickstart/android/
app_key appkey1 Идентификатор клиента приложения; должен совпадать с app_key на стороне серверной части приложения

Комментарии ( 0 )

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

Введение

Высокопроизводительный IM-сервер Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/juggleim-im-server.git
git@api.gitlife.ru:oschina-mirror/juggleim-im-server.git
oschina-mirror
juggleim-im-server
juggleim-im-server
master