我正在使用vertx-rx-java
我有两个顶点,使用EventBus相互通信,其中一个顶点返回复杂对象作为结果,为此,我创建了自定义MessageCodec
,并希望将其注册到EventBus
中。 / p>
在标准io.vertx.core.eventbus.EventBus
中,有一种方法registerCodec
可以为此EventBus
注册自定义编解码器。
但是,由于我正在使用io.vertx.rxjava.core.Vertx
,因此通过调用vertx.eventBus()
会收到io.vertx.rxjava.core.eventbus.EventBus
,它没有这种方法。从rxjava EventBus
中删除此方法的目的是什么?在使用rxjava时使用自定义编解码器是否被认为是不好的做法?如果是这样,推荐的方法是什么?
添加找到的自定义编解码器的唯一方法是调用eventBus.getDelegate()
:
EventBus eb = vertx.eventBus();
((io.vertx.core.eventbus.EventBus) eb.getDelegate()).registerCodec(new StringMessageCodec());