首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gRPC Java server:有没有办法获取从客户端接收到的原始消息字节?

gRPC Java server:有没有办法获取从客户端接收到的原始消息字节?
EN

Stack Overflow用户
提问于 2018-08-18 12:54:43
回答 1查看 395关注 0票数 1

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-22 18:12:11

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

代码语言:javascript
复制
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();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51905383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档