4.2. EventBus 中的变化
以下部分描述了 EventBus 中的更改。
4.2.1. 删除了 EventBus 中的请求响应发送方法 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
EventBus.send (…, Handler<AsyncResult<Message<T>>) 和 Message.reply (…, Handler<AsyncResult<Message<T>>) 方法已被删除。这些方法可能会导致 Eclipse Vert.x 4 中出现过载问题。该方法的版本返回 Future<Message<T > 将与触发和忘记版本冲突。
请求响应的消息传递模式应使用新的 请求和 replyAndRequest 方法。
-
使用方法
EventBus.request (…, Handler<AsyncResult<Message<T>>)而不是EventBus.send (…, Handler<AsyncResult<Message<T>>)来发送消息。 -
使用方法
Message.replyAndRequest (…, Handler<AsyncResult<Message<T>>)而不是Message.reply (…, Handler<AsyncResult<Message<T>>)来回复消息。
以下示例显示了请求并回复 Eclipse Vert.x 3.x 版本中的消息。
- Request(请求)
eventBus.send("the-address", body, ar -> ...);
eventBus.send("the-address", body, ar -> ...);
- 答复
eventBus.consumer("the-address", message -> {
message.reply(body, ar -> ...);
});
eventBus.consumer("the-address", message -> {
message.reply(body, ar -> ...);
});
以下示例显示了请求并回复 Eclipse Vert.x 4 中的消息。
- Request(请求)
eventBus.request("the-address", body, ar -> ...);
eventBus.request("the-address", body, ar -> ...);
- 答复
eventBus.consumer("the-address", message -> {
message.replyAndRequest(body, ar -> ...);
});
eventBus.consumer("the-address", message -> {
message.replyAndRequest(body, ar -> ...);
});