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

Сетевые настройки

Сетевые настройки подключения к серверу описываются моделью ChatNetworkConfig

Инициализация:

Конструктор по умолчанию создает модель со стандартными настройками:

var chatNetworkConfig = ChatNetworkConfig()

Можно настривать отдельные компоненты подключения:

  • httpConfig: Настройки REST API
  • wsConfig: Настройки WebSocket API
  • sslPinning: Настройки SSL пиннинга

Настройки REST API

Модель WSConfig позволяет настроить следующие параметры WS(S) подключения:

  • connectionTimeout: Таймаут ожидания подключения к серверу (по умолчанию 30 секунд)
  • downloadTimeout: Таймаут ожидания скачивания файла (по умолчанию 30 секунд)
  • uploadTimeout: Таймаут ожидания выгрузки файла (по умолчанию 120 секунд)

Настройки WebSocket подключения

Модель HTTPConfig позволяет настроить следующие параметры HTTP(S) подключения:

  • connectionTimeout: Таймаут ожидания подключения к серверу (по умолчанию 30 секунд)
  • sendTimeout: Таймаут ожидания отправки сообщения, до появления ошибки (по умолчанию 20 секунд)

Настройки SSL пиннинга

осторожно

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

Модель SSLPinningConfig позволяет настроить следующие параметры:

  • allowUntrustedSSLCertificate: Отключение проверки подписи сертификатов (не рекомендуется использовать, по умолчанию отключено)
  • trustedCertificates: Список доверенных сертификатов (при использовании проверка подписи игнорируется и проверяется только соответствие сертификатов)

Сертификат передается в виде модели ChatSSLCertificate, в которой указывается локальный путь до сертификата в формате .DER

var chatNetworkConfig = ChatNetworkConfig()
if let mainCert = URL("main_cert.cer"), let backupCert = URL("backup_cert.cer") {
chatNetworkConfig.sslPinning.trustedCertificates = [ChatSSLCertificate(contentsOf: mainCert), ChatSSLCertificate(contentsOf: backupCert)]
}