Parse LiveQuery 客户端为 iOS/OSX
PFQuery 是 Parse 的一个关键概念。它允许您通过指定一些条件来检索 PFObject,这使得构建仪表板、待办事项列表甚至一些策略游戏等应用程序变得容易。然而,PFQuery 基于拉取模型,这对于需要实时支持的应用程序来说并不适合。
假设您正在构建一个应用程序,该应用程序允许多个用户同时编辑同一文件。由于您无法知道何时从服务器查询以获取更新,因此 PFQuery 不会是一个理想的选择。
为了解决这个问题,我们引入了 Parse LiveQuery。这个工具允许您订阅一个您感兴趣的 PFQuery。一旦订阅,服务器将随时通知客户端有关匹配 PFQuery 的 PFObject 被创建或更新的实时信息。
设置服务器
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组织,并将不再为此代码做出贡献或进行分发。