问题标签 [lightstreamer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
191 浏览

maven - Lightstreamer java se 客户端 maven

我正在尝试使用 lightstreamer 的 java 客户端 sdk,我觉得我有一个非常基本的问题。

pom.xml当我像这样添加依赖项时:

然后我只在com.lightstreamer:ls-javase-client:4.3.0中获得以下包

我没有这里描述的任何类: https ://lightstreamer.com/api/ls-javase-client/4.3.0/

也许这是漫长的一天。

0 投票
0 回答
83 浏览

javascript - ISSLive Telemetry: Locking Protocol SQLite3 C++ error on query, with Javascript code update the same SQLite3 database, all on WSL

我正在尝试根据来自 lightstreamer 服务器的遥测重复更新 C++ 中的一些值。该遥测数据是来自国际空间站 (ISSLive) 的实时数据,我将使用它来表达相同的 VR 模拟模型。我已经涵盖了 VR 模拟方面;我只需要数据流方面的帮助。这是代码的公开要点:https ://gist.github.com/connorjak/9f853bb83559976e12c9e38811c3c0af

工作起点

这个项目的起点是ISS-Mimic 项目。这是他们的(工作)架构:

(在树莓派上运行)

  1. Pythondatabase_initialize.py删除然后重新初始化 SQLite3 数据库/dev/shm/iss_telemetry.db
  2. PythonGUI.py建立同目录的SQLite3连接,应用于isolation_level = None连接对象
  3. 在某个时间点GUI.py,一个 Python 子进程被打开ISS_Telemetry.js
  4. NodeJSISS_Telemetry.js与同一目录建立 SQLite3 连接,使用以下行:var db = new sqlite3.Database("/dev/shm/iss_telemetry.db", sqlite3.OPEN_CREATE | sqlite3.OPEN_READWRITE);
  5. ISS_Telemetry.js建立到 lightstreamer 服务器的 LightstreamerClient 连接,使用setSlowingEnabled(false)
  6. ISS_Telemetry.js监听 Lightstreamer 连接并使用新数据更新 SQLite 数据库。
  7. GUI.py继续重复执行选择查询和 fetchall() 以在每个滴答声中获取完整的遥测数据。

非工作当前架构

现在,这是我的架构,主要区别是粗体

(在 Windows 10 1903、WSL 和 Ubuntu 18.04 LTS上运行)

  1. C++ISSLIVE.cpp调用system(...)启动和等待 Pythondatabase_initialize.py
  2. Pythondatabase_initialize.py删除然后重新初始化 SQLite3 数据库/dev/shm/iss_telemetry.db
  3. C++ISSLIVE.cpp建立到同一目录的 SQLite3 连接,不适isolation_level = None用于连接对象(在 C API 中找不到等效功能)
  4. ISSLIVE.cpp调用system(...&)开始而不是等待 NodeJSISS_Telemetry.js
  5. NodeJSISS_Telemetry.js与同一目录建立 SQLite3 连接,使用以下行:var db = new sqlite3.Database("/dev/shm/iss_telemetry.db", sqlite3.OPEN_CREATE | sqlite3.OPEN_READWRITE);
  6. ISS_Telemetry.js建立到 lightstreamer 服务器的 LightstreamerClient 连接,使用setSlowingEnabled(false)
  7. ISS_Telemetry.js监听 Lightstreamer 连接并使用新数据更新 SQLite 数据库。
  8. ISSLIVE.cpp继续重复执行选择查询 ( sqlite3_exec(...)) 以在每个滴答声中获取完整的遥测数据。查询通过回调传递以将所有接收到的表数据打印到 cout

问题

而不是去回调函数并打印任何数据,而是sqlite3_exec(...)返回错误代码 15: PROTOCOL (Locking Protocol error)。这恰好在十秒后发生。

问题

我应该怎么做才能调试这个?我尝试使用 valgrind callgrind 来找出计算违规者,但似乎发生的任何事情都不是计算量大(此代码中花费的计算时间非常短)。

我也可以尝试用另一种架构替换这种架构。我是不是该?我会用什么?我无法更改此数据的源服务器。我之前在cpp-lsclient(Lightstreamer 的 C++ 实现)上遇到了错误。该 repo 似乎只有 lightstreamer 的部分实现。

更多信息

  • isolation_level = None 应该与autocommitSQLite 中的模式相关。autocommit模式当前在 C++ 代码中打开;我检查了。
  • database_initialize.py在与数据库有关的任何其他内容运行之前完成(并关闭其连接)
  • ISS_Telemetry.js当 C++ 应用程序关闭时关闭
  • ISS_Telemetry.js似乎工作正常;数据正常流入。这段代码可能仍然存在问题。
  • Python 3.6.8
  • NodeJS v12.13.1
  • npm 6.12.1
  • Javascript node-sqlite3 4.1.1(实际的sqlite库版本~3.30)
  • C++ sqlite3 3.22.0
  • lightstreamer 客户端 7.3.1
  • C++14 标准
  • 在 pthread 中作为动态链接库运行的 C++ 代码,以及高度多线程的仿真平台
0 投票
1 回答
180 浏览

javascript - Node.js 脚本在 require 上挂起,但在 REPL 中运行良好

node.js在 Ubuntu 18.04 LTS 上运行。require根据我是在 REPL 中还是在脚本中使用它,我似乎得到了不同的行为。具体来说,我曾经npm下载lightstreamer-client-node. 现在,我打开一个终端并执行以下操作:

这完美地工作。

现在我想在脚本中使用这个包。我创建了一个node_test.js仅包含以下行的文本文件:

我打开一个终端并运行命令:

这会无限期地挂在闪烁的光标上。

我是全新的node.jsJavaScript所以也许这是预期的行为。我已经阅读了有关该require功能的一些内容,但似乎找不到它的解释。请注意,如果我lightstreamer-client-node用其他一些节点模块替换,例如safe-buffer,那么一切正常,无论我使用 REPL 还是脚本。

0 投票
1 回答
782 浏览

python - 如何使用 python 连接到 lightstreamer?

我想用 python 连接到 lightstramer

光流器示例

我试试

但总是出错

我怎样才能连接到这个并获取数据?我需要什么库?

0 投票
1 回答
85 浏览

javascript - 当我们从一页更改为另一页时,库存率不显示

我们正在开发一个 Angular 8 应用程序,该应用程序的主要部分是显示我们的商品价格。使用 lightstreamer,我们从 URL 推送费率。一切正常,但我们从一个页面移动并返回到同一页面,费率没有到来。只有我们手动刷新页面,费率才会开始显示。我在

Ts 文件下面给出了代码示例:

服务文件

html:

0 投票
1 回答
54 浏览

javascript - updating client time with website time that uses lightstreamer

I want to update time of my pc with the website in which use Lightstreamer for updating its time. In the debugging tab in chrome devtools, I found that the time value is updated in which line:

In this code, the value Sd or f belongs to the website's time. the problem is that I don't know where can I find the calculation process of f and how to call the above code function to catch this value in console (I can't even recognize the name of function!). On the other hand, the clock updated by a function that use output of this function as updateInfo named construct and use it in the website. these all are automatically and I need to do it manually with less intervals.

calculation of f is more useful for me because this value is formatted to string and doesn't contain milliseconds (formatted as hh:mm:ss).

configuration of Lightstreamer is as below

0 投票
0 回答
72 浏览

java - 大量的 wait_to_close 会话

我从 HTML5 客户端连接到流媒体服务器,客户端使用 javascript 代码连接到流媒体服务器,我有另一个连接到流媒体服务器的 java 客户端,两个客户端使用相同的数据适配器光流服务器。

HTML5有自己的流媒体服务器,java客户端有自己的流媒体服务器。

但是,当客户数量增加时,java 和 HTML5 的行为完全不同,我们在 HTML5 LS 服务器上发现了大量的 WAIT TO CLOSE 会话,但 java 端没有任何反应。

我已阅读日志,发现以下行重复了太多次:

20 年 8 月 31 日 14:10:37,592|信息 |LightstreamerLogger.requests |用于泵停车销毁器|关闭会话 S97cc068f69302361T1037592,内部原因代码:38(中断)。(总重复次数的 99%)

20 年 8 月 31 日 10:59:55,136|信息 |LightstreamerLogger.requests |用于泵停车销毁器|关闭会话 Sd801e961cc64051cT5925121,内部原因代码:39(超时)。(总重复次数的 1%)

这两条记录从 9:30 到 14:15 为 2000 个用户重复了 117058

你能帮我解决这个严重的问题吗?

0 投票
0 回答
116 浏览

c# - 延迟接收更新 lightstreamer dotnet 客户端

我使用 C# 和https://www.nuget.org/packages/Lightstreamer.DotNetStandard.Client/5.0.0-beta。从服务器接收更新会延迟到达客户端。我使用此示例代码:https ://github.com/Lightstreamer/Lightstreamer-example-Quickstart-client-dotnet 控制台日志如下:

item1 TradeDate 的项目更新 >>>>>>>>>>>>> 服务器:12:18:49 --- 客户端:12:18:52.029

item1 TradeDate 的项目更新 >>>>>>>>>>>>> 服务器:12:18:53 --- 客户端:12:18:57.024

item1 TradeDate 的项目更新 >>>>>>>>>>>>> 服务器:12:18:59 --- 客户端:12:19:02.023

item1 TradeDate 的项目更新 >>>>>>>>>>>>> 服务器:12:19:02 --- 客户端:12:19:07.274

item1 TradeDate 的项目更新 >>>>>>>>>>>>> 服务器:12:19:08 --- 客户端:12:19:12.253

0 投票
2 回答
200 浏览

javascript - 将事件处理程序添加到 LightStreamer

我想抓取一个使用 LightStreamer 显示实时数据的网站。如何添加事件处理程序以在 Javascript 中接收这些消息?
不幸的是,LightStreamer 没有足够的教程。
以下示例对我有用:

当我重新发送“收到的消息”时。使用 msg 变量,我看到了一个与我在 Chrome DevTools(网络选项卡> ws 部分)中看到的不同的无意义数组。

此外,每个订阅都有 isActive() 和 isSubscribed() 方法。当我根据 getSubscriptions() 返回的数组元素检查它们时,我发现它们都是正确的。但是,实际上,Chrome DevTools 显示只有一个处于活动状态并接收消息。寻找有效订阅是另一个问题。

更新:感谢@Robert 的帮助。最后,我可以理解 getSubscriptions()[6] 包含我需要的内容。其他订阅更新页面中的时钟或其他内容。我从此订阅中提取了以下项目和字段:

但这不起作用。服务器返回错误“找不到数据适配器”。更改为 'mySub.addListener({ onItemUpdate: myEH3});' 没有帮助。我已经尝试通过 'App.ls.getSubscriptions()[6].addListener({ onItemUpdate : myEH3});' 将事件处理程序直接添加到 getSubscriptions()[6],但我的函数从未调用过。任何提示将不胜感激。

0 投票
1 回答
51 浏览

websocket - LightStreamer中snapshot和isActive()的概念

阅读 LightStreamer 的文档,仍然存在一些问题,我无法通过阅读文档找到它们。

  1. 快照是什么概念?
  2. isActive() 和 isSubscribed() 方法有什么区别?如果有人在 websocket 编程中熟悉这些,请指导我。