CoinbaseSocketSwift 1.0.3

CoinbaseSocketSwift 1.0.3

Hani Shabsigh 维护。



CoinbaseSocketSwift

Version License Platform

特性

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

在您使用此库之前,请先查阅 Coinbase Pro 官方文档

此库受到了 GDAXSwift 的启发,并且是 GDAXSocketSwift 的延续。

要求

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

安装

CoinbaseSocketSwift 通过 CocoaPods 提供使用。查看 cocoapods.org 上的 入门 标签页以了解更多信息。

要安装 CoinbaseSocketSwift,只需将以下行添加到 Podfile 中

pod 'CoinbaseSocketSwift'

然后运行

pod install

使用

导入

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

import CoinbaseSocketSwift
初始化

使用可用初始化器创建 CoinbaseSocketClient 的一个实例。注意,最好使用属性,这样在设置之后不会被立即回收。

如果想要接收经过身份验证的消息,apiKeysecret64passphrase 参数是可选的。有关身份验证 WebSocket 消息的更多详细信息,请参阅 Coinbase Pro 官方文档

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

CoinbaseSocketSwift 设计为与任何 WebSocket 库一起使用。因此,一个符合 CoinbaseWebSocketClient 协议的类必须传递给 CoinbaseSocketClientCoinbaseSocketClient 保留对这个 socket 类的强引用,并处理连接、断开连接、接收消息和连接状态。请查看示例项目,了解如何使用 Starscream 来完成此操作。

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

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

socketClient?.logger = CoinbaseSocketClientDefaultLogger()
配置代理人

最后,设置一个类来接收代理调用。

socketClient?.delegate = self

然后,可以创建一个扩展并实现代理方法。代理方法是可选的(通过空默认实现)。

extension ViewController: CoinbaseSocketClientDelegate {
	func coinbaseSocketDidConnect(socket: CoinbaseSocketClient) {
		socket.subscribe(channels:[.ticker], productIds:[.BTCUSD])
	}

	func coinbaseSocketDidDisconnect(socket: CoinbaseSocketClient, error: Error?) {

	}

	func coinbaseSocketClientOnErrorMessage(socket: CoinbaseSocketClient, error: ErrorMessage) {
		print(error.message)
	}

	func coinbaseSocketClientOnTicker(socket: CoinbaseSocketClient, ticker: TickerMessage) {
		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

待办事项

  • 测试...

作者

汉尼·沙比格,LinkedInGitHub

许可

CoinbaseSocketSwift 在MIT许可证下提供。有关更多信息,请参阅LICENSE文件。

捐赠

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

比特币: 1EkkFgBZp4jN21b6N85ZWDmxMohytt9L2Z

Bitcoin