【问题标题】:Websocket connection issue in iOS?iOS中的Websocket连接问题?
【发布时间】:2019-06-11 09:33:45
【问题描述】:

我在我的应用程序中使用网络套接字连接。当我尝试建立 Web 套接字连接但未连接时。我正在使用 Starscream 进行网络套接字连接。我已经尝试使用许多测试 WS Url 进行测试,但没有一个 url 有效。目前我正在模拟器中进行测试。是否有任何代理问题或防火墙问题?

class ViewController: UIViewController, WebSocketDelegate {
var socket: WebSocket!

override func viewDidLoad() {
    super.viewDidLoad()
    let urlString = "wss://echo.websocket.org" // testing url 

    var request = URLRequest(url: URL(string: urlString)!)
    request.timeoutInterval = 30
    socket = WebSocket(request: request)
    socket.delegate = self
    socket.pongDelegate = self as? WebSocketPongDelegate
     socket.connect()
}

// MARK: Websocket Delegate Methods.
// Never call this method
func websocketDidConnect(socket: WebSocketClient) {
    print("websocket is connected")
}

func websocketDidDisconnect(socket: WebSocketClient, error: Error?) {
    if let e = error as? WSError {
        print("websocket is disconnected: \(e.message)")
    } else if let e = error {
        print("websocket is disconnected: \(e.localizedDescription)")
    } else {
         print("websocket disconnected")
    }
}

func websocketDidReceiveMessage(socket: WebSocketClient, text: String) {
    print("Received text: \(text)")
}

func websocketDidReceiveData(socket: WebSocketClient, data: Data) {
    print("Received data: \(data.count)")
}

}

【问题讨论】:

    标签: ios swift web-services websocket


    【解决方案1】:

    如果您还没有这样做,需要检查几件事:

    • 记住,苹果默认会阻止所有非 https url。在 - 中将任意负载更改为 YES info.plist -> 应用传输安全设置 > 允许任意加载

    • 设置 self.socket.selfSignedSSL = true

    【讨论】:

    • @Mathhew Frankland,感谢您的回答。实际上代理有问题。由于这个原因无法连接到 web socket。
    猜你喜欢
    • 1970-01-01
    • 2018-10-18
    • 1970-01-01
    • 1970-01-01
    • 2017-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-02
    相关资源
    最近更新 更多