【发布时间】:2020-11-15 19:02:33
【问题描述】:
阅读 LightStreamer 的文档,有些问题我通过阅读文档找不到。
- 快照是什么概念?
- isActive() 和 isSubscribed() 方法有什么区别? 如果有人熟悉这些 websocket 编程,请指导我。
【问题讨论】:
阅读 LightStreamer 的文档,有些问题我通过阅读文档找不到。
【问题讨论】:
在 Lightstreamer 术语中,您订阅了“项目”,每个项目都模拟了一个以状态为特征的实体以及该状态的更新流。 当您订阅一个项目时,您可能想立即知道当前状态;然后是所有后续更新,一旦发生。 为了简化界面,状态以与更新相同的格式发送给客户端;所以它是由零个或多个特殊更新制成的。 这些携带项目当前状态的特殊更新称为快照。
以上是抽象的。实体的状态可以通过多种可能的方式进行。 出于这个原因,Lightstreamer 引入了几种类型的项目(即 MERGE、DISTINCT 和 COMMAND),它们涵盖了基本的状态类型。 General Concepts 文档的第 3.2 段对它们进行了详细描述。
2)
在客户端库中引入了这种区别,因为这些库用一个 Subscription 对象表示每个订阅。 此对象指定订阅请求(一个或多个项目)的特征,但此请求要实现,需要两个步骤: 1 应用程序向客户端库提交请求; 2 客户端库向 Lightstreamer Server 提交请求。
因此,在 1 之后,对象的 isActive() 返回 true,而在 2 之后,对象的 isSubscribed() 也返回 true。 请注意,订阅请求可能具有复杂的生命周期。 例如,如果与服务器的连接丢失,客户端库会重新连接并重新发出订阅;同时,isActive() 为真,isSubscribed() 为假。 此外,应用程序可以稍后取消订阅,但随后重用相同的订阅对象再次请求相同的订阅;同时,isActive() 为假(而 isSubscribed() 显然为假)。
【讨论】: