Coder Social home page Coder Social logo

Comments (8)

Rhain avatar Rhain commented on September 27, 2024 1

@yupnano 可不可以解答下, 后面会基于星云做项目,这个订阅事件的功能还是很关键的,如果这个功能有问题,那可能会转向尝试其他公链,还请帮忙解答下呀。

from neb.js.

Rhain avatar Rhain commented on September 27, 2024

测试了一下,确实是subscribe来订阅, 后面调用transfer方法的时候收到了通知。 但是还有一个疑问,当有一段时间没有收到通知的时候就报

Unexpected token < in JSON at position 0

这个错误。

我的理解是这个应该会保持一个长连接,每过一段时间就会返回一个数据包。但是没有数据的时候返回了空,导致解析异常?异常之后这个长连接感觉就结束了, 问题来了,应该如果保持这个长连接呢?

from neb.js.

yupnano avatar yupnano commented on September 27, 2024

你好,neb.js的 subscribe 需要指定一个函数来接收返回event事件,比如:

neb.api.subscribe(["chain.contract.TestContract"],onDownloadProgress )

var onDownloadProgress = function(event){
    console.log(event);
}

from neb.js.

Rhain avatar Rhain commented on September 27, 2024

@yupnano 使用你说的方式指定了一个onDownloadProgeress 方法.

neb.api.subscribe({"topics": ["chain.contract.TestToken"]}, onDownloadProgress ).then(function(eventData) {
    logger.info('event data:' + JSON.stringify(eventData));
}).catch(function (e) {
    logger.error("error:" + e)
});

function onDownloadProgress(event) {
    logger.warn('subscribe event:' + event);
}

会有这么一个情况,如果启动这个订阅后一段时间时间没有订阅数据返回的话,就会报下面的错:

image

一旦报错了,后面感觉订阅就失败了,后面即使有调用transfer方法也不会收到订阅信息了。

如果启动订阅后,马上调用了transfer方法,是可以收到订阅信息。但是有时候又收不到,感觉很不稳定,同时收到这个信息的时间会比交易成功迟比较久的时间,给人的感觉就是通知不及时。不知道这是不是在测试环境的原因?

对于这种订阅,有没有一种稳定的方法可以获取到订阅信息的?

from neb.js.

yupnano avatar yupnano commented on September 27, 2024

直接连接测试网或主网请求subscribe的话,可能会由于网络问题丢失event,甚至连接失败。
建议运行本地节点,然后与主网同步,然后向本地节点请求subscribe,这样应该会稳定一些。

from neb.js.

Rhain avatar Rhain commented on September 27, 2024

是不是意味着即使是运行了本地节点,也有可能会丢失event? 所以又提供了一个通过txhash来获取event的接口,这样即使subscribe没有获取到event,也可以通过txhash来查询event数据?

from neb.js.

1c7 avatar 1c7 commented on September 27, 2024

event subscribe 请问有进展吗?

from neb.js.

1c7 avatar 1c7 commented on September 27, 2024

相关讨论:
nebulasio/go-nebulas#61
(无结论,仅供参考)

相关文档:
https://github.com/nebulasio/wiki/blob/master/rpc.md#subscribe

from neb.js.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.