swift3wamp-protocol

CFNetwork SSLHandshake failed (-9807) in swamp connection


import Swamp

class ViewController: UIViewController,SwampSessionDelegate,SwampTransportDelegate {

    let swampTransport = WebSocketSwampTransport(wsEndpoint:  URL(string: "wss://122.166.47.130:8086/ws")!)

    override func viewDidLoad() {
        super.viewDidLoad()
        connect()
    }

    func connect(){
        swampTransport.delegate = self
        let swampSession = SwampSession(realm: "open-realm", transport: swampTransport)
    //    let swampSession = SwampSession(realm: <#T##String#>, transport: <#T##SwampTransport#>, authmethods: <#T##[String]?#>, authid: <#T##String?#>, authrole: , authextra: <#T##[String : Any]?#>)


        swampSession.delegate = self
        swampSession.connect()
    }

    func swampSessionHandleChallenge(_ authMethod: String, extra: [String: Any]) -> String{
        print("swampSessionHandleChallenge")
      return ""
    }

    func swampSessionConnected(_ session: SwampSession, sessionId: Int){
        print("swampSessionConnected")
        session.subscribe("wamp.topic", onSuccess: { subscription in
            print("sssddf")
        }, onError: { details, error in
            print("errorrrr")
        }, onEvent: { details, results, kwResults in
            print("aaaaaa")
        })

    }

    func swampSessionEnded(_ reason: String){
        print("swampSessionEnded= \(reason)")

    }

    public func swampTransportDidConnectWithSerializer(_ serializer: SwampSerializer){
        print("swfdgfsdg")
    }

    public func swampTransportDidDisconnect(_ error: NSError?, reason: String?){
        print("retryw")
    }

    public func swampTransportReceivedData(_ data: Data){
        print("uu7i7")
    }
}

I'm getting the exception:

CFNetwork SSLHandshake failed (-9807)

I assume the realm value I added is correct but I am not certain. Print() is used for testing that connection.


Solution

  • I solved it after making socket.disableSSLCertValidation = true and set the protocol as let socket = WebSocket(url: wsEndpoint, protocols: ["protocol_name"])