iOS / Swift和Coinbase Pro API-订阅Websocket Feed

时间:2018-08-28 23:24:29

标签: ios json swift http websocket

我正在尝试使用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提要中收到“订阅”消息。我想念什么?

0 个答案:

没有答案