当前位置: 首页 > 知识库问答 >
问题:

如何发送格式在运行时确定的gRPC消息?

养振濂
2023-03-14

我主要对在Java中实现这一点感兴趣,但是看到任何语言中的解决方案都会有所帮助。

    null

我现在能看到的唯一方法是shell出来,在临时目录中生成代码,调用编译器,加载编译后的代码,并使用反射来获得预期的函数。

对我来说,这听起来像是一个极端的黑客。有更简单的选择吗?

共有1个答案

濮阳翔
2023-03-14

gRPC Java中,生成的代码和proto是可选的,您实际上并不需要它们(尽管它们很方便)。要动态解释消息,您需要定义自己的封送器,该封送器与inputstream一起使用,以访问原始消息字节。从这里,您可以将它们缓冲到一个数组中,并决定如何解析它们。

作为一个类似的练习,我编写了一个关于将JSON与GRPC结合使用的更深入的教程。对于您的代码来说,原则应该是相同的。

 类似资料:
  • 我正在使用grpc protobuf消息定义,并在Go中实现它们。 我的最终目标是让我的rpc在用户上检索一些json并返回带有可选嵌套消息的Message,用于解组json的子集。 使用此rpc: 假设如下: 我想返回一个消息,该消息仅包含“foo”、“bar”或两者,作为基于grpc请求的传入运行时参数的嵌套消息(目前,将是包含用于将json子设置为相应消息的消息名称的字符串列表,例如)。 给

  • 我正在尝试从发送(私人)直接消息A@jabber.de给用户B@jabber.de使用camel xmpp组件。但它总是说“吉德畸形”。使用此文档:https://camel.apache.org/components/latest/xmpp-component.html 使用camel 2.24.2和java 8,但在java 11上存在相同的问题。我还尝试在消息头中设置“from”和“to”。

  • 问题内容: 因此,我的Web应用程序需要身份验证,并且我有一个注册页面,如果该人员尝试使用数据库中已经存在的电子邮件进行注册,我想向他们显示错误消息。我正在尝试在html端使用以下代码执行此操作: 并在我的路线中执行以下操作: 我已经尝试通过以下方式设置配置: 但这给了我一个TypeError: 我真的很困惑,因为我知道我需要会话才能使Flash正常工作,但是会话似乎对我来说并不起作用。我还尝试通

  • 我正在尝试使用grpc实现pub-sub模式,但我对如何正确地实现它有点困惑。 我的协议:rpc调用(google.protobuf.Empty)返回(流数据) 客户: 服务器服务: 如何正确地从全局观察员中删除客户端?当连接中断时,如何接收某种信号 如何管理客户端-服务器重新连接?如何在连接断开时强制客户端重新连接? 提前感谢!

  • 有些时候,一些发送的消息会在传输过程中不慎丢失(由于网络故障或者其他问题导致,或者由于他们是通过长连接轮询的方式存在与请求-响应循环列表中)。 这种情况下,你可能想要发送这样的一类消息,叫做易挥发消息(volatile message)。 服务器端 var io = require('socket.io')(80); io.on('connection', function (socket) {

  • 我想创建一个不和谐机器人,每天在特定的时间发送2条消息。下面的代码将使消息进入一个循环,例如每5秒发送一条消息。我如何设置每天发送消息的具体时间,例如,消息1在下午6点,消息2在上午10点。我在这里找到了这段代码,但是没有找到我想要的。

  • 问题内容: 我正在使用Java开发RESTful Web服务。如果出现问题,我需要一种将错误消息发送给客户端的好方法。 根据Javadoc的规定, “由于message参数含义不明确 ,因此不建议使用 ”。 有没有设置状态消息或响应的“ 原因短语 ”的首选方法?该方法不这样做。 编辑:为了澄清,我想修改HTTP状态行,即不是主体内容。具体来说,我想发送类似的回复。 问题答案: 我认为任何RESTf

  • 我们在用Netty编写的AWS Network ELB(类似于具有长期连接的Echo服务器)后面有一个简单的TCP服务器,我正在尝试实现一个类似于TCP keep alive机制的keep live机制,以保持空闲连接打开。不幸的是,我们不能依赖TCP保持活动机制,因为NELB不会将保持活动的TCP数据包转发到负载平衡器的另一端 我想做的是监视空闲连接,并向客户端发送一个空字符串(空字节数组)。到