4.2. EventBus の変更点
以下のセクションでは、EventBus の変更点を説明します。
4.2.1. EventBus の request-response 送信メソッドを削除 リンクのコピーリンクがクリップボードにコピーされました!
EventBus.send(…, Handler<AsyncResult<Message<T>>>) メソッドおよび Message.reply(…, Handler<AsyncResult<Message<T>>>) メソッドが削除されました。これらのメソッドにより、Eclipse Vert.x 4 でオーバーロードの問題が生じました。Future<Message<T>> メソッドのバージョンは、fire および forget バージョンと競合します。
Request-response メッセージングパターンでは、新しい request メソッドおよび replyAndRequest メソッドを使用する必要があります。
-
EventBus.メソッドを使用してメッセージを送信します。send(…, Handler<AsyncResult<Message<T>>>)の代わりに EventBus.request(…, Handler<AsyncResult<Message<T>>>) -
Message.メソッドを使用してメッセージに応答します。reply(…, Handler<AsyncResult<Message<T>>>)の代わりに Message.replyAndRequest(…, Handler<AsyncResult<Message<T>>>)
以下の例は、Eclipse Vert.x 3.x リリースのメッセージに対する要求および応答を示しています。
- 要求
eventBus.send("the-address", body, ar -> ...);
- 返信
eventBus.consumer("the-address", message -> {
message.reply(body, ar -> ...);
});
以下の例は、Eclipse Vert.x 4 のメッセージへの要求および応答を示しています。
- 要求
eventBus.request("the-address", body, ar -> ...);
- 返信
eventBus.consumer("the-address", message -> {
message.replyAndRequest(body, ar -> ...);
});