首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向LightStreamer添加事件处理程序

向LightStreamer添加事件处理程序
EN

Stack Overflow用户
提问于 2020-11-14 10:57:53
回答 2查看 298关注 0票数 0

我想刮一个使用LightStreamer显示实时数据的网站。如何添加事件处理程序以接收Javascript中的这些消息?

不幸的是,LightStreamer没有足够的教程。

以下示例适用于我:

代码语言:javascript
复制
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包含了我需要的内容。其他订阅更新时钟或页面中的其他内容。我从此订阅中提取项和字段如下:

代码语言:javascript
复制
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中,但是我的函数从未调用过。任何暗示都是非常感激的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-11-15 11:17:24

最后,我可以把头转到图书馆里去。搜索网页的JavaScript文件,我发现在某个地方,DataAdapter将被设置为订阅。

这是我的最后代码:

代码语言:javascript
复制
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);
票数 0
EN

Stack Overflow用户

发布于 2020-11-14 11:09:33

他们有教程和坚实的api文档..。从…

代码语言:javascript
复制
<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。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64833160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档