ios - iOS/Swift 和 Coinbase Pro API - 订阅 Websocket 源
问题描述
我正在尝试使用 Swift 订阅 websocket 提要。根据其 websocket 提要的新Coinbase Pro API 文档:
要开始接收提要消息,您必须首先向服务器发送一条订阅消息,指明要接收哪些渠道和产品。此消息是强制性的——如果在 5 秒内没有收到订阅,您将被断开连接。
我做的第一件事是将Starscream添加到项目中,以使连接到 websocket 更容易实现。我按照自述文件中的步骤适当地添加了委托方法。
接下来,我通过创建一个对象并在设置请求后URLSession
调用成功地发送了一个 HTTP GET 请求(我得到一个 200 代码作为响应) ,如下所示:dataTask(with: )
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 提要的“订阅”消息。我错过了什么?
解决方案
推荐阅读
- javascript - 计算分数作为相对于其他分数的值
- php - PHP - SSH 连接中的 Telnet 连接/命令
- angular - Angular 中的自定义微调器(徽标)
- android - 从我的 android 应用程序将数据保存到远程数据库中
- reactjs - React axios 将令牌存储在本地存储中
- jenkins - 运行时的 jenkinsfile 参数名称解析
- azure-cognitive-search - Azure 搜索中的自定义评分功能
- php - 在 wordpress 中使用 AJAX 获取特定页面内容
- python - “GET /static/my_style.css HTTP/1.1”404 1660
- visual-studio - kMVC Nuget 包安装“方法为空”错误