将自定义编解码器添加到rxjava vertx EventBus

时间:2018-09-20 20:18:48

标签: java rx-java vert.x

我正在使用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());

1 个答案:

答案 0 :(得分:2)

简短答案似乎不受支持。但是,最近(八月)未发布的master分支上的情况发生了变化。看到他们从@GenIgnore here中删除了EventBus。但是,版本3.5.3中还没有。大概此更改将在下一版本中发布。