发送事件

优质
小牛编辑
129浏览
2023-12-01

事件可以由Hyperledger Composer发出并由外部应用程序订阅。事件在业务网络定义的模型文件中定义,并由交易处理器函数文件中的交易JavaScript发出。

在你开始之前

在开始将事件添加到您的业务网络之前,您应该对业务网络的建模语言以及构成完整的业务网络定义的内容有深入的了解。

过程

1.事件在业务网络定义的模型文件(.cto)中定义,与资产和参与者相同。事件使用以下格式:

   event BasicEvent {
   }

2.为了事件被发布,创建事件的交易必须调用三个函数,第一个是getFactory函数。getFactory允许事件作为交易的一部分而被创建。接下来,必须使用factory.newEvent('org.namespace', 'BasicEvent')创建一个事件。这将在指定的命名空间中创建一个BasicEvent事件。然后必须设置事件所需的属性。最后,事件必须通过使用emit(BasicEvent)发送。调用这个事件的简单交易将如下所示:

   /**
    * @param {org.namespace.BasicEventTransaction} basicEventTransaction
    * @transaction
    */
   function basicEventTransaction(basicEventTransaction) {
       var factory = getFactory();

       var basicEvent = factory.newEvent('org.namespace', 'BasicEvent');
       emit(basicEvent);
   }

此交易创建并发出在业务网络模型文件中定义的BasicEvent类型的事件。有关getFactory函数的更多信息,请参阅Composer API文档。

接下来是什么?