LiveGQL 2.0.0

LiveGQL 2.0.0

测试测试
Lang语言 SwiftSwift
许可证 MIT
发布最后发布2018年1月
SwiftSwift 版本3.0
SPM支持 SPM

Florian MARI 维护。



LiveGQL 2.0.0

  • Florian Mari

LiveGQL: Use GraphQL Websocket subscription in Swift

LiveGQL 是一个简单的库,用于在基于 WebSocket 上使用 GraphQL Subscribtion,基于 Apollo 协议

Android 版本在这里 here

特性

  • [x] 连接到 GraphQL WebSocket 服务器
  • [x] 发送消息
  • [x] 订阅 / 取消订阅
  • [x] 关闭连接
  • [x] 数据处理 (代理)
  • [x] 错误处理
  • [x] 重连选项
  • [x] JSON 原始响应
  • [x] 未发送消息队列
  • [x] 实现所有 Apollo 协议(目前仅客户端部分完全实现)
  • [ ] 下一步:Swift 4 更新与本地 JSON 编码器/解码器

要求

  • iOS 9.0 / tvOS 9.0
  • Xcode >= 8.1
  • Swift >= 3.0

我们还使用了 StarscreamJSONCodable,感谢他们

通讯

  • 如有任何问题,请使用问题跟踪
  • 不要犹豫,通过拉取请求为项目做出贡献

安装

手动

只需将源文件夹中的文件复制过来即可!

用法

初始化

重要:为了防止变量在作用域中出错,请在 viewDidLoad() 之前实例化,例如。

import LiveGQL

let gql = LiveGQL(socket: "ws://:7003/feedback")

gql.delegate = self
gql.initServer(connectionParams: nil, reconnect: true)

例如,您可以将 Dictionnary[String:String] 作为 connectionParams 设置,以便进行身份验证。

订阅 / 取消订阅

订阅

只需调用订阅方法,设置标识符以及您的订阅查询。

gql.subscribe(graphql: "subscription {feedbackAdded {id, text}}", identifier: "feed")
处理服务器响应

您必须实现委托方法,在你的主ViewController(例如)中只需那样做

override func viewDidLoad() {
        super.viewDidLoad()
        gql.delegate = self
        // Do any additional setup after loading the view, typically from a nib.
    }

在您的类下面添加以下扩展并实现该方法

extension ViewController: LiveGQLDelegate {
    func receivedMessage(text: String) {
        print("Received Message: \(text)")
    }
}

取消订阅

只需调用取消订阅方法和您的标识符即可

gql.unsubscribe(identifier: "feed")

关闭连接

gql.closeConnection()

错误