Я пытаюсь подключиться к самозаверяющему SSL URL. Но когда я добавляю sessionDelegate в качестве опции, он не работает.
import Foundation
import SocketIO
import UIKit
class SocketM: NSObject, URLSessionDelegate {
static var manager = SocketManager(socketURL: URL(string:"https://localhost:8000")!, config: [.log(true), .secure(true), .selfSigned(true), .sessionDelegate(self)])
func urlSession(_ session: URLSession, didReceive challenge: URLAuthenticationChallenge, completionHandler: (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) {
let protectionSpace = challenge.protectionSpace
guard protectionSpace.authenticationMethod ==
NSURLAuthenticationMethodServerTrust,
protectionSpace.host.contains(Services_Routes.host) else {
completionHandler(.performDefaultHandling, nil)
return
}
guard let serverTrust = protectionSpace.serverTrust else {
completionHandler(.performDefaultHandling, nil)
return
}
let credential = URLCredential(trust: serverTrust)
completionHandler(.useCredential, credential)
}
Он возвращает мне Тип 'Любой' не имеет члена 'sessionDelegate'
Когда я пытаюсь:
SocketIOClientOption.sessionDelegate(self)
Тип '(SocketM) -> () -> SocketM' не соответствует протоколу 'URLSessionDelegate'
Может кто-нибудь объяснить мне проблему? Спасибо!