В настоящее время я добавляю событие из моего цепного кода при добавлении ресурса.
async addRequestNode(ctx, sampleAssetId, sampleData) {
//console.info('============= Adding Sample Asset ===========');
await ctx.stub.putState(sampleAssetId,sampleData);
//console.info('============= Sample Asset Added ===========');
ctx.stub.setEvent('sampleAssetAdded', 'sampleData');
}
Здесь, как вы можете видеть, я отправляю событие sampleAssetAdded.Я хочу перехватить это событие в своем клиентском приложении.
У меня настроен сервер, и я прослушиваю порт 8080. На сервере я создал экземпляр channelEventHub и дал идентификатор кода моей цепочки и имя события.
const channelEventHub = new ChannelEventHub('mychannel','peer0.org1.example.com');
let eventCapture = channelEventHub.registerChaincodeEvent('fabcar','sampleAssetAdded',(event, block_num, txnid, status) => {
console.log('Successfully got a chaincode event with transid:'+ txnid + ' with status:'+status);
storeBlockNumForLater(block_num);
let event_payload = event.payload.toString('utf8');
if(event_payload.indexOf('CHAINCODE') > -1) {
clearTimeout(handle);
channel_event_hub.unregisterChaincodeEvent(regid);
console.log('Successfully received the chaincode event on block number '+ block_num);
resolve('RECEIVED');
} else {
console.log('Successfully got chaincode event ... just not the one we are looking for on block number '+ block_num);
}
},(error) => {
console.log('Got Some Error'+error);
})
Но когда я добавляю актив, событие не захватывается.Я не знаю, что происходит не так.
Я даже консольно зарегистрировал eventCapture и получил это
Event Capture ----> ChaincodeRegistration {
ccid: 'fabcar',
eventNameFilter: /sampleAssetAdded/,
event_reg:
EventRegistration {
_onEventFn: [Function],
_onErrorFn: [Function],
unregister: false,
disconnect: false,
unregister_action: [Function] } }
Я не уверен, регистрируется ли он на событие или нет.
Я использую Node SDK иЯ упомянул этот сайт https://fabric -sdk-node.github.io / release-1.4 / tutorial-channel-events.html , но это совсем не полезно, поскольку у них нет полногокод и вместо этого иметь смутные фрагменты с неправильным или не работающим кодом.
Может кто-нибудь, пожалуйста, помогите, как настроить все это и проверить его тоже.