tls support
This commit is contained in:
@@ -28,7 +28,20 @@ public class Socket: NSObject {
|
||||
}
|
||||
|
||||
public func connect() {
|
||||
let connection = NWConnection(host: NWEndpoint.Host(self.host), port: NWEndpoint.Port(String(self.port))!, using: .tcp)
|
||||
let parameters = NWParameters.tcp
|
||||
if self.useTLS {
|
||||
let tls = NWProtocolTLS.Options()
|
||||
|
||||
if (self.acceptInvalidCertificates) {
|
||||
sec_protocol_options_set_verify_block(tls.securityProtocolOptions, { (sec_protocol_metadata, sec_trust, sec_protocol_verify_complete) in
|
||||
sec_protocol_verify_complete(true)
|
||||
}, DispatchQueue.global())
|
||||
}
|
||||
|
||||
parameters.defaultProtocolStack.applicationProtocols.insert(tls, at: 0)
|
||||
}
|
||||
|
||||
let connection = NWConnection(host: NWEndpoint.Host(self.host), port: NWEndpoint.Port(String(self.port))!, using: parameters)
|
||||
connection.stateUpdateHandler = self.stateDidChange(to:)
|
||||
self.receive(on: connection)
|
||||
connection.start(queue: .main)
|
||||
@@ -84,7 +97,10 @@ public class Socket: NSObject {
|
||||
self.delegate?.didReceiveMessage(socket: self.id, message: message)
|
||||
}
|
||||
}
|
||||
self.receive(on: connection)
|
||||
|
||||
if (connection.state == .ready) {
|
||||
self.receive(on: connection)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user