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.consumer("the-address", message -> { message.reply(body, ar -> ...); });
以下示例显示了请求并回复 Eclipse Vert.x 4 中的消息。
- Request(请求)
eventBus.request("the-address", body, ar -> ...);
- 答复
eventBus.consumer("the-address", message -> { message.replyAndRequest(body, ar -> ...); });