【问题标题】:Is there a way that a Party can be notified that a Flow has been completed?有没有办法通知缔约方流程已完成?
【发布时间】:2020-05-29 00:59:11
【问题描述】:

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

我需要在 Bob 节点上运行的 CorDapp 实时向另一个系统传达交易状态

非常感谢

【问题讨论】:

    标签: corda


    【解决方案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
        });
    });
    

    【讨论】:

      【解决方案2】:

      除了Ashutosh的回答,

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

      【讨论】:

      • 感谢 Adel 的进一步回答,目前我们在没有网络服务器的情况下工作,因此您的建议不适用于此特定情况。我们将牢记任何其他未来的项目
      猜你喜欢
      • 1970-01-01
      • 2017-09-18
      • 1970-01-01
      • 2015-02-13
      • 2019-06-13
      • 2019-08-31
      • 1970-01-01
      • 2012-01-08
      • 2019-04-05
      相关资源
      最近更新 更多