ParseLiveQuery 2.8.1

ParseLiveQuery 2.8.1

测试已测试
语言语言 SwiftSwift
许可 NOASSERTION
发布最后发布2021年10月
SPM支持 SPM

Parse 平台 维护。



 
依赖
Parse~> 1.19.0
Bolts-Swift~> 1.5.0
Starscream~> 4.0.4
 

  • Parse 社区、Richard Ross、Nikita Lutsenko 和 Florent Vilmart

Parse LiveQuery 客户端为 iOS/OSX

Platforms Carthage compatible Podspec License ci release Build Status Join The Conversation Backers on Open Collective Sponsors on Open Collective Twitter Follow

PFQuery 是 Parse 的一个关键概念。它允许您通过指定一些条件来检索 PFObject,这使得构建仪表板、待办事项列表甚至一些策略游戏等应用程序变得容易。然而,PFQuery 基于拉取模型,这对于需要实时支持的应用程序来说并不适合。

假设您正在构建一个应用程序,该应用程序允许多个用户同时编辑同一文件。由于您无法知道何时从服务器查询以获取更新,因此 PFQuery 不会是一个理想的选择。

为了解决这个问题,我们引入了 Parse LiveQuery。这个工具允许您订阅一个您感兴趣的 PFQuery。一旦订阅,服务器将随时通知客户端有关匹配 PFQueryPFObject 被创建或更新的实时信息。

设置服务器

Parse LiveQuery 包含两个部分:LiveQuery 服务器和 LiveQuery 客户端。为了使用实时查询,您需要设置两个。

设置 LiveQuery 服务器最简单的方法是让它与 开源 Parse Server 一起运行。

安装客户端

Cocoapods

您可以通过将其包含在 Podfile 文件中来安装 LiveQuery 客户端。

pod 'ParseLiveQuery'

使用客户端

LiveQuery 客户端界面基于 订阅 的概念。您可以通过对查询调用 subscribe() 方法来注册任何 PFQuery,从而从相关实时查询服务器获得实时更新。

let myQuery = Message.query()!.where(....)
let subscription: Subscription<Message> = Client.shared.subscribe(myQuery)

其中 Message 是注册的 PFObject 子类。

一旦您已订阅查询,您就可以处理它们的事件,如下所示

subscription.handleEvent { query, event in
    // Handle event
}

您也可以处理单独一种类型的事件,如果您只对此感兴趣

// Note it's handle(), not handleEvent()
subscription.handle(Event.created) { query, object in
    // Called whenever an object was created
}

默认情况下,它将打印 WebSocket / WebSocketDelegate 的日志。您可以将其关闭

Client.shared.shouldPrintWebSocketLog = false

您还可以为所有发送和接收的字符串启用套接字跟踪消息。默认情况下,这些跟踪消息是禁用的

Client.shared.shouldPrintWebSocketTrace = true

处理错误和其他事件的方法类似,请查阅 Subscription 类以获取更多信息。

高级使用

您不受单个 LiveQuery 客户端的限制 – 您可以创建自己的 Client 实例以手动控制重新连接、服务器 URL 等操作。

我如何贡献?

我们希望尽可能地使向此项目贡献变得方便和透明。请参阅贡献指南


截至2017年4月5日,Parse, LLC已将此代码转让给parse-community组织,并将不再为此代码做出贡献或进行分发。