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组织,并将不再为此代码做出贡献或进行分发。