Высокопроизводительная, масштабируемая и открытая система мгновенного обмена сообщениями (IM).
Если вы заинтересованы в IM или у вас есть вопросы по интеграции, очень рады видеть вас в нашем сообществе для обсуждения.
Telegram на русском、Telegram на английском、Добавить друга для присоединения к WeChat-группе
Примечание:由于微信群二维码有时间限制,加入微信讨论可优先加 小山 微信好友,由 Ta 邀请进群组
Документация по развертыванию (https://www.juggle.im/docs/guide/deploy/quickdeploy/)
Пропущено
CREATE SCHEMA `jim_db` ;
Файл SQL для инициализации структуры таблиц находится в im-server/docs/jim.sql. Команда для импорта:
mysql -u{db_user} -p{db_password} jim_db < jim.sql
Пропущено
Директория запуска — im-server/launcher. В директории conf находятся конфигурационные файлы, а в директории logs — логи работы службы.
Конфигурационный файл: 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
В директории im-server/launcher выполните следующую команду:
go run main.go
Необходимо настроить порты для внешнего доступа:
Порт | Тип протокола | Описание |
---|---|---|
9003 | HTTP | Порт для прослушивания API-сервиса сервера; используется сервером приложения, например, jugglechat-server; |
9003 | WebSocket | Порт для прослушивания долгосрочных соединений; используется клиентским SDK для установки долгосрочного соединения (WebSocket) с IM-сервисом |
8090 | HTTP | Порт для прослушивания административной панели IM-сервиса; по умолчанию логин/пароль: admin/123456 |
Способы настройки внешнего адреса не описываются подробно здесь; вы можете гибко настраивать их в зависимости от вашей среды (например, привязка к публичному IP-адресу, использование Nginx как обратного прокси, балансировка нагрузки и т.д.).
Примечание: Если вы используете систему только в локальной сети для тестирования, можно не настраивать внешний IP-адрес/домен, достаточно использовать внутренний IP-адрес.
Настройка очень проста — достаточно добавить запись в базу данных:
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).
JuggleIM — это многоклиентская система, в которой можно создавать несколько appkey (клиентов), данные между которыми изолированы и не влияют друг на друга.
Планируется к доработке
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"
}
}
Адрес административной панели: http://127.0.0.1:8090 Логин/пароль по умолчанию: admin/123456
После входа в административную панель вы увидите список созданных приложений; выбрав одно из них, вы сможете изменять и поддерживать его конфигурацию.
Здесь собраны все необходимые конфигурации для интеграции:
Конфигурация | Пример | Примечание |
---|---|---|
Адрес 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 символов; важно не раскрывать этот ключ на стороне клиента |
Конфигурация | Пример | Примечание |
---|---|---|
Адрес подключения IM-сервиса | ws://127.0.0.1:9003 | Адрес подключения к IM-сервису; передается клиентскому SDK при его инициализации; документация доступна по ссылке: https://www.juggle.im/docs/client/quickstart/android/ |
app_key | appkey1 | Идентификатор клиента приложения; должен совпадать с app_key на стороне серверной части приложения |
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )