@SDUSC
1 事件相关信息的获取
1.1 获取事件账户列表
GET /ledgers/{ledger}/events/user/accounts?fromIndex={fromIndex}&count={count}
参数
请求类型 | 名称 | 是否必需 | 说明 | 数据类型 |
---|
path | ledger | 是 | 账本哈希 | 字符串 |
query | fromIndex | 否 | 查询的起始序号,默认为0 | 数字 |
query | count | 否 | 查询返回事件账户的数量,默认最大返回值为100,小于0或大于100均返回最大可返回结果集 | 数字 |
1.2 获取事件账户
GET /ledgers/{ledger}/events/user/accounts/{address}
参数
请求类型 | 名称 | 是否必需 | 说明 | 数据类型 |
---|
path | ledger | 是 | 账本哈希 | 字符串 |
address | 账户地址 | 是 | 事件账户地址 | 字符串 |
1.3 获取事件账户总数
GET /ledgers/{ledger}/events/user/accounts/count
参数
请求类型 | 名称 | 是否必需 | 说明 | 数据类型 |
---|
path | ledger | 是 | 账本哈希 | 字符串 |
1.4 获取事件名数量
GET /ledgers/{ledger}/events/user/accounts/{address}/names/count
参数
请求类型 | 名称 | 是否必需 | 说明 | 数据类型 |
---|
path | ledger | 是 | 账本哈希 | 字符串 |
path | address | 是 | 事件账户地址 | 字符串 |
1.5 获取事件名列表
GET /ledgers/{ledger}/events/user/accounts/{address}/names?fromIndex={fromIndex}&count={count}
参数
请求类型 | 名称 | 是否必需 | 说明 | 数据类型 |
---|
path | ledger | 是 | 账本哈希 | 字符串 |
path | address | 是 | 事件账户地址 | 字符串 |
query | fromIndex | 否 | 查询的起始序号,默认为0 | 数字 |
query | count | 否 | 查询返回事件账户的数量,默认最大返回值为100,小于0或大于100均返回最大可返回结果集 | 数字 |
1.6 获取最新事件
GET /ledgers/{ledger}/events/user/accounts/{address}/names/{event_name}/latest
参数
请求类型 | 名称 | 是否必需 | 说明 | 数据类型 |
---|
path | ledger | 是 | 账本哈希 | 字符串 |
path | address | 是 | 事件账户地址 | 字符串 |
path | event_name | 是 | 事件名 | 字符串 |
1.7 获取事件数量
GET /ledgers/{ledger}/events/user/accounts/{address}/names/{event_name}/count
参数
请求类型 | 名称 | 是否必需 | 说明 | 数据类型 |
---|
path | ledger | 是 | 账本哈希 | 字符串 |
path | address | 是 | 事件账户地址 | 字符串 |
path | event_name | 是 | 事件名 | 字符串 |
1.8 获取事件列表
GET /ledgers/{ledger}/events/user/accounts/{address}/names/{event_name}?fromSequence={fromSequence}&count={count}
参数
请求类型 | 名称 | 是否必需 | 说明 | 数据类型 |
---|
path | ledger | 是 | 账本哈希 | 字符串 |
path | address | 是 | 事件账户地址 | 字符串 |
path | event_name | 是 | 事件名 | 字符串 |
query | fromSequence | 否 | 查询的起始序号,默认为0 | 数字 |
query | count | 否 | 查询返回事件的数量,默认最大返回值为100,小于0或大于100均返回最大可返回结果集 | 数字 |
2事件的监听
2.1 事件的发布
TransactionTemplate txTemp = blockchainService.newTransaction(ledger);
// sequence是针对此消息name的序列严格递增,初始为-1,可通过查询事件名下最新事件获取序列参数
txTemp.eventAccount(Bytes.fromBase58("LdeNiAPuZ5tpYZVrrbELJNjqdvB51PBpNd8QA")).publish("topic", "content", -1);
PreparedTransaction ptx = txTemp.prepare();
ptx.sign(adminKey);
TransactionResponse response = ptx.commit();
2.2. 监听事件
// 监听系统事件,目前仅有新区快产生事件
blockchainService.monitorSystemEvent(ledger,
SystemEvent.NEW_BLOCK_CREATED, 0, (eventMessages, eventContext) -> {
for (Event eventMessage : eventMessages) {
// content中存放的是当前链上最新高度
System.out.println("New block:" + eventMessage.getSequence() + ":" + BytesUtils.toLong(eventMessage.getContent().getBytes().toBytes()));
}
});
// 监听用户自定义事件
blockchainService.monitorUserEvent(ledger, "LdeNr7H1CUbqe3kWjwPwiqHcmd86zEQz2VRye", "sample-event", 0, (eventMessage, eventContext) -> {
BytesValue content = eventMessage.getContent();
switch (content.getType()) {
case TEXT:
case XML:
case JSON:
System.out.println(eventMessage.getName() + ":" + eventMessage.getSequence() + ":" + content.getBytes().toUTF8String());
break;
case INT64:
case TIMESTAMP:
System.out.println(eventMessage.getName() + ":" + eventMessage.getSequence() + ":" + BytesUtils.toLong(content.getBytes().toBytes()));
break;
default: // byte[], Bytes
System.out.println(eventMessage.getName() + ":" + eventMessage.getSequence() + ":" + content.getBytes().toBase58());
break;
}
});
|
标签:count,数据类型,ledger,JDchain,软件工程,事件,字符串,eventMessage,监听
来源: https://blog.csdn.net/qq_57499230/article/details/122200492