我想刮一个使用LightStreamer显示实时数据的网站。如何添加事件处理程序以接收Javascript中的这些消息?
不幸的是,LightStreamer没有足够的教程。
以下示例适用于我:
var myEH = function ff(msg) {
console.log("message receieved.");
};
App.ls.getSubscriptions()[0].addListener({ onItemUpdate : myEH})当我后悔“收到消息”时。使用msg变量,我看到一个非意义数组,它与我在Chrome DevTools (网络tab> ws节)中看到的不一样。
此外,对于每个订阅还有isActive()和isSubscribed()方法。当我对照getSubscriptions()返回的数组元素检查它们时,我发现它们都是真的。但是,实际上,Chrome DevTools显示,只有一个是活动的,并收到消息。另一个问题是找到活动订阅。
更新:谢谢@Robert的帮助。最后,我可以理解getSubscriptions()6包含了我需要的内容。其他订阅更新时钟或页面中的其他内容。我从此订阅中提取项和字段如下:
var myItems = App.ls.getSubscriptions()[6].getItems();
var myFields = App.ls.getSubscriptions()[6].getFields();
var myEH3 = function ff(msg) {
console.log('tttt3');
};
var mySub = new Subscription("MERGE", myItems, myFields);
mySub.addListener(myEH3);
App.ls.subscribe(mySub);但这不管用。服务器返回错误“数据适配器未找到。”更改为“mySub.addListener({ onItemUpdate: myEH3})”没有帮助。我已经尝试过通过‘getSubscriptions()6.addListener({ onItemUpdate :myEH3})’直接将其添加到App.ls.getSubscriptions()6中,但是我的函数从未调用过。任何暗示都是非常感激的。
发布于 2020-11-15 11:17:24
最后,我可以把头转到图书馆里去。搜索网页的JavaScript文件,我发现在某个地方,DataAdapter将被设置为订阅。
这是我的最后代码:
var myItems = App.ls.getSubscriptions()[6].getItems();
var myFields = App.ls.getSubscriptions()[6].getFields();
var adaptername = App.ls.getSubscriptions()[6].getDataAdapter();
var myEH3 = function ff(msg) {
console.log('message received.');
};
var mySub = new Subscription("MERGE", myItems, myFields);
mySub.setDataAdapter(adaptername);
mySub.setRequestedSnapshot("yes");
mySub.addListener({onItemUpdate: myEH3});
App.ls.subscribe(mySub);发布于 2020-11-14 11:09:33
他们有教程和坚实的api文档..。从…
<script>
require(["LightstreamerClient", "Subscription", "StaticGrid"], function(LightstreamerClient, Subscription, StaticGrid) {
var client = new LightstreamerClient(null, "HELLOWORLD");
client.connect();
// you have to create your own SubscriptionListener
var grid = new StaticGrid("hellogrid", true);
var subscription = new Subscription("MERGE", grid.extractItemList(), grid.extractFieldList());
subscription.addListener(grid);
client.subscribe(subscription);
});
</script> 现在,您必须根据关注接口创建自己的订阅监听器。然后,订阅侦听器上有onItemUpdate。
https://stackoverflow.com/questions/64833160
复制相似问题