套接字连接时SSL握手失败.(Google/Android TV Remote Controller For iOS).



我正在创建一个iOS演示,我正在实现使用iOS应用程序通过参考以下链接来控制谷歌/安卓电视的功能。

https://github.com/Aymkdn/assistant-freebox-cloud/wiki/Google-TV- (aka-Android-TV)远程控制- (v2)

也是Node中的工作演示。https://github.com/louis49/androidtv-remote

我正在使用iOS swift的套接字IO库实现此功能。

在连接过程中,我面对SSL握手失败.

代码

import UIKit
import SocketIO
class ConnectViewController: UIViewController {
let manager = SocketManager(socketURL: URL(string: "wss://172.16.16.23:6467")!)
var socket:SocketIOClient!

override func viewDidLoad() {
super.viewDidLoad()

let ssl = SSLSecurity.init(usePublicKeys: true)
manager.setConfigs([.secure(true),.selfSigned(false),.security(ssl),.log(true),.sessionDelegate(self),.reconnects(false),.forceWebsockets(true),.forcePolling(true)])

self.socket = manager.defaultSocket


self.socket.on(clientEvent: .connect) {data, ack in
print("socket connected")
}
}
}

你应该使用TLS连接而不是WSS启动安卓电视和你的应用程序之间的配对过程。然而,一些电视供应商没有实现这个功能,因为他们没有任何证书。我在至少一家电视供应商(可口可乐)那里遇到过这个问题。要检查证书是否存在,您可以尝试使用OpenSSL

建立连接
openssl s_client -connect <AndroidTV IP>:6467 -prexit -state -debug

相关内容

最新更新