Java 通过RMI将ProtocolBuffer Message.Builder发送到另一台计算机

Java 通过RMI将ProtocolBuffer Message.Builder发送到另一台计算机,java,rmi,protocol-buffers,netty,Java,Rmi,Protocol Buffers,Netty,我有以下伪代码: public void sendPB(ObjectId userId, Message.Builder mb) { if (userId is logged in to server) { set mb.ackId to random chars lookup socket and send mb.build() } else { forward message to user's server via R

我有以下伪代码:

public void sendPB(ObjectId userId, Message.Builder mb) {
    if (userId is logged in to server) {
        set mb.ackId to random chars
        lookup socket and send mb.build()
    }
    else {
        forward message to user's server via RMI
    }
}
问题是消息。构建器没有实现可序列化,所以您不能直接通过RMI发送它

有没有一个简单的方法可以做到这一点

我已经尝试从构建器中构建部分PB并将其发送过来,但是为了重建它,您需要知道类型或描述符。描述符也不实现可序列化


感谢任何您无法调用
build()
,获取
消息
,并以任何正确格式发送它的原因(例如,
toString()
)。在另一端,您可以将其充气回
消息
,并在需要时使用
toBuilder()
将其重新放入生成器

您也可以将消息转换为二进制格式并发送


也许我误解了——ProtocolBuffers的全部目的是将
消息
转换成一个有线表示,所以有很多方法可以实现这一点(大多数方法要么是
可序列化的
,要么是简单地包装起来。)

我让它工作了。。。我必须在RMI消息中包含一个typeID字段。然后,我可以获取typeID并将其解析为消息生成器,然后合并部分构建消息的字节