ChatTransportConfig
ChatTransportConfig описывает параметры подключения мобильного SDK к backend edna Chat Center. Передаётся в ChatConfig.transportConfig. Класс имеет два конструктора:
- Конструктор с единым хостом (
cloudHost) — REST и WebSocket эндпоинты выводятся из одного URL.datastoreостаётся пустым, поэтому загрузка/скачивание файлов через этот конфиг не работает. - Расширенный конструктор — REST, WebSocket и datastore задаются явно. Подходит для нестандартного развёртывания и для работы с файловыми вложениями.
Таймауты соединения и SSL pinning настраиваются отдельно — см. network_config.
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 — он остаётся пустой строкой. Если ваше приложение использует отправку/скачивание файлов, переходите на расширенный конструктор.
| Параметр | Тип | Обязательный | По умолч. | Описание |
|---|---|---|---|---|
cloudHost | String | Да | — | Полный URL backend-сервера с протоколом (https://name.edna.ru). URL без протокола вызовет ошибку при инициализации SDK |
apiVersion | ChatApiVersion | Нет | V16 | Версия backend API |
Доступные значения ChatApiVersion
| Значение | Версия API | Примечание |
|---|---|---|
ChatApiVersion.V16 | 16 | По умолчанию |
ChatApiVersion.V17 | 17 | — |
ChatApiVersion.V18 | 18 | — |
ChatApiVersion.V19 | 19 | — |
ChatApiVersion.V20 | 20 | — |
ChatApiVersion.V21 | 21 | Последняя версия |
Версию 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
)
| Параметр | Тип | Обязательный | По умолч. | Описание |
|---|---|---|---|---|
rest | String | Да | — | URL REST endpoint с протоколом (https://...) |
webSocket | String | Да | — | URL WebSocket endpoint с протоколом (wss://... для TLS, ws://... для незашифрованного соединения) |
dataStore | String | Да | — | URL datastore с протоколом (загрузка/скачивание файлов) |
dataStoreHTTPHeaders | Map<String, String>? | Нет | — | Дополнительные HTTP-заголовки для datastore. Параметр без дефолта — передайте null, если кастомных заголовков нет (SDK подставит пустую Map). |
newRoutesEnabled | Boolean | Нет | true | Управляет путём эндпоинта истории сообщений: true — api/client/history, false — legacy-путь history. Других эндпоинтов не затрагивает. Выставляйте false, только если ваш backend не поддерживает новый путь |
apiVersion | ChatApiVersion | Нет | V16 | Версия backend API |
Финальный / обрабатывается автоматически: для REST и dataStore URL добавляется, для WebSocket — удаляется. Передавать URL можно как со слешем, так и без него. Путь и query-параметры сохраняются без изменений.
Связанные разделы
- ChatConfig — куда передаётся
transportConfig. - Network config — таймауты, SSL pinning.
- Известные ограничения — hostname verifier и WebSocket reconnect.