GDAXSocketSwift 0.1.3

GDAXSocketSwift 0.1.3

测试已测试
语言语言 SwiftSwift
许可协议 MIT
发布最新发布2018年11月
SPM支持 SPM

Hani Shabsigh 维护。



GDAXSocketSwift

Version License Platform

功能

  • WebSocket 库无关(可以使用您喜欢的任何库!示例使用 Starscream
  • 最小化的 Swift 代码库,所有 JSON 解析都在内部处理
  • 所有进出通道的 JSON 对象
  • 在订阅通道时可选自动请求签名

官方 GDAX 文档 使用 此库之前,请务必阅读。

此库受 GDAXSwift 的启发。

需求

  • iOS 8.1+ / macOS 10.13+ / tvOS 9.0+ / watchOS 4.0+
  • Xcode 9.0+
  • Swift 4.0+

安装

GDAXSocketSwift 可通过 CocoaPods 获得。查阅 cocoapods.org 上的 入门 选项卡以了解更多信息。

要安装GDAXSocketSwift,只需将以下行添加到您的Podfile中:

pod 'GDAXSocketSwift'

然后运行

pod install

使用方法

导入

首先,需要导入框架。请参阅上面的安装说明,了解如何使用CocoaPods将框架添加到项目中。

import GDAXSocketSwift
初始化

使用可用的初始值器创建一个GDAXSocketClient实例。请注意,最好使用属性,这样就不会在配置后立即被释放。

如果想要接收认证消息,则apiKeysecret64passphrase参数是可选的。有关认证WebSocket消息的更多详细信息,请参阅官方GDAX文档

socketClient = GDAXSocketClient(apiKey: "apiKey", secret64: "secret64", passphrase: "passphrase")
设置WebSocket

GDAXSocketSwift旨在与任何WebSocket库一起使用。因此,必须将符合GDAXWebSocketClient协议的类传递到GDAXSocketClient中。GDAXSocketClient保留对这对socket类的强引用,并处理连接、断开连接、接收消息和连接状态。查看示例项目,了解如何使用Starscream实现此功能。

socketClient?.webSocket = ExampleWebSocketClient(url: URL(string: GDAXSocketClient.baseAPIURLString)!)
设置日志记录器(可选)

如果您想查看GDAXSocketSwift的日志,可以可选地传递一个符合GDAXSocketClientLogger协议的类。提供了一个示例,其中包含了基本日志记录。

socketClient?.logger = GDAXSocketClientDefaultLogger()
设置委托

最后,设置一个类以接收委托调用。

socketClient?.delegate = self

然后您可以创建一个扩展来实现委托方法。委托方法是可选的(通过默认实现为空)。

extension ViewController: GDAXSocketClientDelegate {
    func gdaxSocketDidConnect(socket: GDAXSocketClient) {
        socket.subscribe(channels:[.ticker], productIds:[.BTCUSD])
    }
    
    func gdaxSocketDidDisconnect(socket: GDAXSocketClient, error: Error?) {
        
    }
    
    func gdaxSocketClientOnErrorMessage(socket: GDAXSocketClient, error: GDAXErrorMessage) {
        print(error.message)
    }
    
    func gdaxSocketClientOnTicker(socket: GDAXSocketClient, ticker: GDAXTicker) {
        let formattedPrice = priceFormatter.string(from: ticker.price as NSNumber) ?? "0.0000"
        self.tickerLabel.text = ticker.type.rawValue
        self.priceLabel.text = "Price = " + formattedPrice
        self.productIdLabel.text = ticker.productId.rawValue
        
        if let time = ticker.time {
            self.timeLabel.text = timeFormatter.string(from: time)
        } else {
            self.timeLabel.text = timeFormatter.string(from: Date())
        }
    }
}

示例

要运行示例项目,首先克隆存储库,然后从示例目录中运行 pod install

待办事项

  • 测试...

作者

Hani Shabsigh,[LinkedIn](http://hanishabsigh.com),[GitHub](https://github.com/hanishabsigh)

许可

GDAXSocketSwift 可在 MIT 许可下使用。有关更多信息,请参阅 LICENSE 文件。

捐赠

使用此赚钱?请通过捐赠支持开源。

比特币:1EkkFgBZp4jN21b6N85ZWDmxMohytt9L2Z

Bitcoin