hyperledger-fabric - 如何在用户应用程序中获取通知?
问题描述
在区块链中,我发出了一个与特定交易相关联的事件。我还在我的事务 API 中订阅了该事件。但是在 API 中订阅事件后我该怎么办?我不知道如何使用区块链端发出的这个订阅事件在我的前端或用户应用程序中生成通知。请帮忙。
解决方案
您可以通过在 JS 中使用 WebSocket 来使用 WebSocket 来获取 URL 上发生的事件。
class Events {
constructor() {
// Listen for events
this.socket = new WebSocket(Events.URL_TRANSACTION);
this.socket.addEventListener('open', evt => this.doSocketOpen(evt));
this.socket.addEventListener('close', evt => this.doSocketClose(evt));
this.socket.addEventListener('message', evt => this.doSocketMessage(evt));
// Load initial data
this.xhr = new XMLHttpRequest();
this.xhr.addEventListener('load', evt => this.doInitialLoad1(evt));
this.xhr.open('GET', Events.URL_ASSET1, true);
this.xhr.send(null);
}
// Initial data loaded
doInitialLoad1(evt) {
var data = JSON.parse(this.xhr.responseText);
console.log(data);
}
// FYI
doSocketClose(evt) {
console.log('Close.');
}
// Transaction has taken place
doSocketMessage(evt) {
let data = JSON.parse(evt.data); // getting event data here
console.log(data);
}
// FYI
doSocketOpen(evt) {
console.log('Open.');
}
}
Events.newData = '';
Events.URL_ASSET1 = 'http://localhost:3000/api/org.demo.SampleAsset';
Events.URL_TRANSACTION = 'ws://localhost:3000';
let app = new Events();
上面的代码将持续监控给定的 URL,如果发生任何事件,它将调用该函数doSocketMessage()
。
推荐阅读
- python - tf.reduce_mean 的数值稳定性
- javascript - 设置格式化值中断函数
- c# - 除了从用户输入派生的 ITurnContext RecognizeAsync 之外,为 LuisRecognizer 提供预定文本上下文的最佳方法是什么?
- c++ - 为什么glm不翻译顶点
- go - 在 Go 切片中追加时超出范围
- kotlin - 错误:Kotlin:浮点文字不符合预期的浮点类型
- firebase - vuexfire firestoreAction,与 arg 绑定
- c++ - Qt如何在套接字等待响应时显示请等待对话框?
- php - 如何在 laravel api 中显示验证错误,同时将表单请求文件与控制器分开
- php - 动态在图像上写入文本并将文本居中