Перейти к основному содержимому
Версия: 5.21.0

ChatTransportConfig

ChatTransportConfig описывает параметры подключения мобильного SDK к backend edna Chat Center. Передаётся в ChatConfig.transportConfig. Класс имеет два конструктора:

  • Конструктор с единым хостом (cloudHost) — REST и WebSocket эндпоинты выводятся из одного URL. datastore остаётся пустым, поэтому загрузка/скачивание файлов через этот конфиг не работает.
  • Расширенный конструктор — REST, WebSocket и datastore задаются явно. Подходит для нестандартного развёртывания и для работы с файловыми вложениями.

Таймауты соединения и SSL pinning настраиваются отдельно — см. network_config.

Где взять URL и providerUid

Значения cloudHost (или rest / webSocket / dataStore в расширенном конструкторе) и providerUid доступны администратору edna Chat Center на вкладке «Установка» Android-канала. Полный путь и состав полей: Подключение мобильного чата Android.

Конструктор с единым хостом

Принимает один URL, из которого SDK формирует базы REST и WebSocket.

val transportConfig = ChatTransportConfig(
cloudHost = "https://name.edna.ru", // полный URL с протоколом
apiVersion = ChatApiVersion.V16 // по умолчанию V16
)
Файловые вложения не работают с этим конструктором

datastore не выводится из cloudHost — он остаётся пустой строкой. Если ваше приложение использует отправку/скачивание файлов, переходите на расширенный конструктор.

ПараметрТипОбязательныйПо умолч.Описание
cloudHostStringДаПолный URL backend-сервера с протоколом (https://name.edna.ru). URL без протокола вызовет ошибку при инициализации SDK
apiVersionChatApiVersionНетV16Версия backend API

Доступные значения ChatApiVersion

ЗначениеВерсия APIПримечание
ChatApiVersion.V1616По умолчанию
ChatApiVersion.V1717
ChatApiVersion.V1818
ChatApiVersion.V1919
ChatApiVersion.V2020
ChatApiVersion.V2121Последняя версия
Согласование версии

Версию API необходимо согласовать с технической поддержкой edna — она должна соответствовать версии вашего backend edna Chat Center.

Расширенный конструктор

Используется, когда приложению нужны файловые вложения или когда REST, WebSocket и Datastore размещены на разных серверах:

val transportConfig = ChatTransportConfig(
rest = "https://rest.example.com",
webSocket = "wss://ws.example.com",
dataStore = "https://datastore.example.com",
dataStoreHTTPHeaders = null, // или mapOf("X-Header" to "value")
apiVersion = ChatApiVersion.V16
)
ПараметрТипОбязательныйПо умолч.Описание
restStringДаURL REST endpoint с протоколом (https://...)
webSocketStringДаURL WebSocket endpoint с протоколом (wss://... для TLS, ws://... для незашифрованного соединения)
dataStoreStringДаURL datastore с протоколом (загрузка/скачивание файлов)
dataStoreHTTPHeadersMap<String, String>?НетДополнительные HTTP-заголовки для datastore. Параметр без дефолта — передайте null, если кастомных заголовков нет (SDK подставит пустую Map).
newRoutesEnabledBooleanНетtrueУправляет путём эндпоинта истории сообщений: trueapi/client/history, false — legacy-путь history. Других эндпоинтов не затрагивает. Выставляйте false, только если ваш backend не поддерживает новый путь
apiVersionChatApiVersionНетV16Версия backend API
Нормализация URL

Финальный / обрабатывается автоматически: для REST и dataStore URL добавляется, для WebSocket — удаляется. Передавать URL можно как со слешем, так и без него. Путь и query-параметры сохраняются без изменений.

Связанные разделы