gRPC Java 服务器:有没有办法获取从客户端收到的原始消息字节?

塞尔吉·弗拉迪金

由于 Protobuf 消息序列化格式不是跨平台和软件版本的确定性,仅使用toByteArray()方法将消息序列化回来不一定会产生原始字节。有没有其他方法可以使用 gRPC Java 服务器访问它们?

塞尔吉·弗拉迪金

看起来正确的方法是使用服务器拦截器:

ServerBuilder.forPort(port)
        .addService(
            ServerInterceptors.intercept(
                ServerInterceptors.useInputStreamMessages(
                    new MyMegaCoolService().bindService()
                ),
                new ServerInterceptor() {
                    @Override public <ReqT, RespT> ServerCall.Listener<ReqT> interceptCall(
                        ServerCall<ReqT,RespT> call,
                        Metadata headers,
                        ServerCallHandler<ReqT,RespT> next
                    ) {
                        ServerCall.Listener<ReqT> listener = next.startCall(call, headers);
                        return new ForwardingServerCallListener
                            .SimpleForwardingServerCallListener<ReqT>(listener) {
                            @Override public void onMessage(ReqT msg) {
                                InputStream in = (InputStream)msg;

                                assert in.markSupported();
                                in.mark(MAX_MESSAGE_SIZE);

                                readMessage(in);

                                try {
                                    in.reset();
                                }
                                catch (IOException e) {
                                    throw new IllegalStateException(e);
                                }

                                super.onMessage(msg);
                            }
                        };
                    }
                }
            )
        )
        .build();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

JAVA Grpc客户端

来自分类Dev

TCP 客户端(java)没有收到来自 TCP 服务器的消息(C#)

来自分类Dev

有没有办法为grpc-node客户端配置生成方法名称?

来自分类Dev

如果没有服务器,则GRPC客户端onNext不会失败

来自分类Dev

如果没有服务器,则GRPC客户端onNext不会失败

来自分类Dev

Java gRPC服务器流模型

来自分类Dev

Java gRPC服务器未启动

来自分类Dev

如何为Java / Kotlin / Android中的所有请求设置gRPC客户端超时

来自分类Dev

gRPC Java 客户端 - 在 onNext 期间 hasNext?

来自分类Dev

如何使具有服务器流连接的Android grpc客户端保持活动状态?

来自分类Dev

在grpc客户端之间传输“斑点”-服务器

来自分类Dev

将基于Java的Grpc服务器与基于C#的客户端一起使用时出现传输失败错误

来自分类Dev

具有多个客户端的服务器-JAVA

来自分类Dev

Java-将客户端连接到没有本地主机的服务器

来自分类Dev

如何使用grpc-java从请求元数据获取客户端ip

来自分类Dev

在服务器关闭连接之前,客户端不会收到响应消息(Java)

来自分类Dev

TCP 服务器未收到来自 TCP 客户端的消息 (Java)

来自分类Dev

如何从python中的gRPC客户端关闭gRPC服务器?

来自分类Dev

有没有办法通过cherrypy服务器获取客户端主机名

来自分类Dev

是否可以使用 grpc-java 编写服务器并使用 grpc-web 从浏览器调用它?

来自分类Dev

设置 gRPC Java

来自分类Dev

GRPC Java 的 SSL 错误

来自分类Dev

gRPC客户端超时

来自分类Dev

gRPC 中数据如何从客户端发送到(多服务)服务器

来自分类Dev

grpc状态未从服务器拦截器发送到客户端

来自分类Dev

grpc-java:在客户端上正确处理服务流调用的重试

来自分类Dev

如果服务器打开到端口的连接但客户端没有发送任何东西会发生什么?(Java 服务器套接字)

来自分类Dev

GRPC Java将数据从服务器拦截器传递到rpc服务调用

来自分类Dev

将gRPC python服务器与ruby客户端一起使用时的问题

Related 相关文章

  1. 1

    JAVA Grpc客户端

  2. 2

    TCP 客户端(java)没有收到来自 TCP 服务器的消息(C#)

  3. 3

    有没有办法为grpc-node客户端配置生成方法名称?

  4. 4

    如果没有服务器,则GRPC客户端onNext不会失败

  5. 5

    如果没有服务器,则GRPC客户端onNext不会失败

  6. 6

    Java gRPC服务器流模型

  7. 7

    Java gRPC服务器未启动

  8. 8

    如何为Java / Kotlin / Android中的所有请求设置gRPC客户端超时

  9. 9

    gRPC Java 客户端 - 在 onNext 期间 hasNext?

  10. 10

    如何使具有服务器流连接的Android grpc客户端保持活动状态?

  11. 11

    在grpc客户端之间传输“斑点”-服务器

  12. 12

    将基于Java的Grpc服务器与基于C#的客户端一起使用时出现传输失败错误

  13. 13

    具有多个客户端的服务器-JAVA

  14. 14

    Java-将客户端连接到没有本地主机的服务器

  15. 15

    如何使用grpc-java从请求元数据获取客户端ip

  16. 16

    在服务器关闭连接之前,客户端不会收到响应消息(Java)

  17. 17

    TCP 服务器未收到来自 TCP 客户端的消息 (Java)

  18. 18

    如何从python中的gRPC客户端关闭gRPC服务器?

  19. 19

    有没有办法通过cherrypy服务器获取客户端主机名

  20. 20

    是否可以使用 grpc-java 编写服务器并使用 grpc-web 从浏览器调用它?

  21. 21

    设置 gRPC Java

  22. 22

    GRPC Java 的 SSL 错误

  23. 23

    gRPC客户端超时

  24. 24

    gRPC 中数据如何从客户端发送到(多服务)服务器

  25. 25

    grpc状态未从服务器拦截器发送到客户端

  26. 26

    grpc-java:在客户端上正确处理服务流调用的重试

  27. 27

    如果服务器打开到端口的连接但客户端没有发送任何东西会发生什么?(Java 服务器套接字)

  28. 28

    GRPC Java将数据从服务器拦截器传递到rpc服务调用

  29. 29

    将gRPC python服务器与ruby客户端一起使用时的问题

热门标签

归档