我正在尝试使用Swift订阅Websocket提要。按照新的Coinbase Pro API documentation为其网络套接字提要:
要开始接收提要消息,必须首先向服务器发送订阅消息,指示要接收哪些渠道和产品。此消息是必填消息-如果5秒钟内未收到任何订阅,您将被断开连接。
我做的第一件事是将Starscream添加到项目中,以使连接到websocket的实现更容易。我按照自述文件中的步骤进行操作,并适当地添加了委托方法。
接下来,我通过创建URLSession
对象并在设置请求后调用dataTask(with: )
来成功发送HTTP GET请求(响应时得到200代码),如下所示:
let session = URLSession.shared
guard let url = URL(string: "https://api.pro.coinbase.com/users/self/verify") else {
print("Could not create URL.")
return
}
var request = URLRequest(url: url)
request.httpMethod = "GET"
let body: [String: Any] = ["type": "subscribe",
"channels": [["name": "heartbeat"],
["product_ids": ["BTC-USD"]]]]
let data = try! JSONSerialization.data(withJSONObject: body,
options: JSONSerialization.WritingOptions.sortedKeys)
request.httpBody = data
let task = session.dataTask(with: request) { (data, response, error) in
// Check for errors, clean up data, etc.
}
task.resume
所有内容似乎都已正确链接,但我仍未从websocket提要中收到“订阅”消息。我想念什么?