Сетевые настройки
Сетевые настройки подключения к серверу описываются моделью ChatNetworkConfig
Инициализация:
Конструктор по умолчанию создает модель со стандартными настройками:
var chatNetworkConfig = ChatNetworkConfig()
Можно настривать отдельные компоненты подключения:
httpConfig
: Настройки REST APIwsConfig
: Настройки WebSocket APIsslPinning:
Настройки 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)]
}