我正在为一个需要通知任何给定区块链交易状态的客户端工作。为此,我正在学习如何利用事件来实现这一目标。我尝试参考有关HLF 1.4中事件的官方文档(找到here),但指向SDK文档的链接无效。我也找到了this question,但是提供的链接也全部消失了。
然后我遇到了Fabric Gateway实现(提到了here,发现了BlockListenerTest,它构成了此问题的基础。
我当前的暂存代码如下:
BlockEventSourceFactory factory = BlockEventSourceFactory.getInstance();
BlockEventSource blockEventSource = factory.newBlockEventSource(channel);
blockEventSource.addBlockListener(blockEvent -> {
System.out.println("[zzzzz] Block number is " + blockEvent.getBlockNumber());
});
channel.sendTransaction(responses);
blockEventSource.close();
在我的Java链码中,我呼叫stub.setEvent("myEventName", null)
来设置事件。
问题是,我没有看到调试输出,并且不确定自己在做什么错,所以如果有人可以将我定向到要引用的正确资源,和/或帮助我使上面的代码以某种方式工作。
((如果我还需要提供其他信息,请通过评论告知我,我将在此处添加它们。)
要使用高级网关SDK,您需要先创建一个网关对象,然后从中获取一个网络对象(以示例代码here作为开始)。您可以从网络对象调用传递给使用者函数的addBlockListener()。然后,当您在合同对象上调用SubmitTransaction时,应该调用您的侦听器。