我正在创建一个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