Сетевые настройки
Сетевые настройки подключения к серверу описываются моделью ChatNetworkConfig.
Инициализация:
Конструктор по умолчанию создаёт модель со стандартными настройками:
var chatNetworkConfig = ChatNetworkConfig()
Можно настраивать отдельные компоненты подключения:
httpConfig: Настройки REST APIwsConfig: Настройки WebSocket APIsslPinning:Настройки SSL‑пиннинга
Настройки REST API
Модель HTTPConfig позволяет настроить следующие параметры HTTP(S)-подключения:
connectionTimeout: Таймаут ожидания подключения к серверу (по умолчанию 30 секунд)downloadTimeout: Таймаут ожидания скачивания файла (по умолчанию 30 секунд)uploadTimeout:Таймаут ожидания выгрузки файла (по умолчанию 120 секунд)
Настройки WebSocket‑подключения
Модель WSConfig позволяет настроить следующие параметры WS(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)]
}