GDAXSocketSwift
功能
- 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
实例。请注意,最好使用属性,这样就不会在配置后立即被释放。
如果想要接收认证消息,则apiKey
、secret64
和passphrase
参数是可选的。有关认证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