有没有一种方法可以通知缔约方流程已完成?

时间:2020-05-28 16:07:55

标签: corda

以Corda文档中描述的流程为例(请参阅here),Bob如何在不轮询自己的保险库的情况下接收到刚刚签署的交易已完成的通知? 是否存在特定的回调?

我需要在Bob节点上运行的CorDapp将事务状态实时传达给另一个系统

非常感谢

2 个答案:

答案 0 :(得分:1)

您可以通过两种方式实现这一目标:

1。订阅以使用客户端更新

cordaRPCOPS.vaultTrack(<YourState>.class).getUpdates().subscribe( update -> {
            update.getProduced().forEach(stateAndRef -> {
                // Action to be Performed on State Update
            });
        });

2。订阅以使用CordaService更新:

getServiceHub().getVaultService().trackBy(<YourState>.class).getUpdates().subscribe( update -> {
    update.getProduced().forEach(stateAndRef -> {
        // Action to be Performed on State Update
    });
});

答案 1 :(得分:0)

除了Ashutosh的答案,

在用于标识启动流程的API的SpringBoot网络服务器中,您可以使用proxy.startTrackedFlowDynamic()(其中proxy是您节点的RPC连接);它返回一个FlowProgressHandle,您可以用来订阅流事件。