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