wss 소켓에 연결하려고합니다. 호스트 이름은 "myhostname.com/ws/v2"와 같습니다.호스트 이름에 NSStream을 사용하여 추가 경로가있는 wss 소켓에 연결하는 방법?
let host = "myhostname.com/ws/v2"
CFStreamCreatePairWithSocketToHost(kCFAllocatorDefault, host as CFString, 443, &readStream, &writeStream)
inputStream = readStream!.takeRetainedValue()
outputStream = writeStream!.takeRetainedValue()
outputStream.setProperty(StreamSocketSecurityLevel.negotiatedSSL, forKey: Stream.PropertyKey.socketSecurityLevelKey)
inputStream.setProperty(StreamSocketSecurityLevel.negotiatedSSL, forKey: Stream.PropertyKey.socketSecurityLevelKey)
inputStream.schedule(in: .current, forMode: .commonModes)
outputStream.schedule(in: .current, forMode: .commonModes)
inputStream.delegate = self
outputStream.delegate = self
inputStream.open()
outputStream.open()
이 오류와 함께 실패합니다 : 여기 내가 연결을 시작하는 방법입니다 내가 호스트 이름과 경로를 제거하는 경우, The operation couldn’t be completed. (kCFErrorDomainCFNetwork error 1.)
하지만를, 그래서 다음과 같습니다 myhostname.com
를 다음에 내 위임받은 이벤트는 openCompleted
입니다. 그러나 그 후에는 내 메시지에 응답하지 않습니다. 경로를 제거한 이후 잘못된 소켓에 연결되어 있다고 가정합니다.
호스트 이름에 추가 경로가있는 경우 소켓에 연결하는 적절한 방법은 무엇입니까?