代码之家  ›  专栏  ›  技术社区  ›  Ruslan Akhundov

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

  •  0
  • Ruslan Akhundov  · 技术社区  · 7 年前

    我正在使用 vertx-rx-java

    我有两个verticles,它们使用EventBus相互通信,其中一个verticles返回复杂对象作为结果,为此我创建了custom MessageCodec EventBus .

    在标准中 io.vertx.core.eventbus.EventBus 有一种方法 registerCodec 事件总线 .

    但是因为我用的是 io.vertx.rxjava.core.Vertx vertx.eventBus() 我收到 io.vertx.rxjava.core.eventbus.EventBus ,没有这样的方法。从rxjava中删除这个方法的目的是什么 事件总线 ,在使用rxjava时使用自定义编解码器是否被认为是不好的做法?如果是,建议采用什么方法?

    添加我找到的自定义编解码器的唯一方法是调用 eventBus.getDelegate() :

    EventBus eb = vertx.eventBus();
    
    ((io.vertx.core.eventbus.EventBus) eb.getDelegate()).registerCodec(new StringMessageCodec());
    
    1 回复  |  直到 7 年前
        1
  •  2
  •   Will Cain    7 年前

    简短的回答似乎不被支持。最近(8月)在未发行的主分支上,这种情况发生了变化;看到他们被移除了吗 @GenIgnore EventBus here . 不过,这一点尚未公布 3.5.3 . 这一变化可能会在下一个版本中出现。