Grpc在Android中的用法

  GRPC是一个高性能、通用的开源RPC框架,其由Google主要面向移动应用开发并基于HTTP/2协议标准而设计,基于ProtoBuf(Protocol Buffers)序列化协议开发,且支持众多开发语言。gRPC提供了一种简单的方法来精确地定义服务和为iOS、Android和后台支持服务自动生成可靠性很强的客户端功能库。客户端充分利用高级流和链接功能,从而有助于节省带宽、降低的TCP链接次数、节省CPU使用、和电池寿命。

proto文件的内容。


.proto文件的位置,新建一个与java同级的目录proto,将.proto文件放入。Rebuild后编译器会自动生成一系列的Java文件。

                 

用法:

  private class GrpcTask extends AsyncTask<Void, Void, String> {

        private ManagedChannel mChannel;

        @Override
        protected void onPreExecute() {

        }

        private PersonProto.ResultMsgResponsesayHello(ManagedChannel channel) {

             //这些类都是grpc自动生成的

             PersonServiceGrpc.PersonServiceBlockingStub stub = PersonServiceGrpc.newBlockingStub(channel);
             PersonProto.PersonRequest request = new PersonProto.PersonRequest();
            request.name = et_name.getEditText().getText().toString().trim();
            request.manage = "1";
            request.status =  "1";
            request.mobilephone = "123456";
            PersonProto.ResultMsgResponse response = stub.savePersonInfoRpc(request);
            return response;         
        }

        @Override
        protected String doInBackground(Void... nothing) {
            try {
                mChannel = ManagedChannelBuilder.forAddress("192.168.3.158", 8888)
                        .usePlaintext(true)
                        .build();
                return sayHello(mChannel);
            } catch (Exception e) {
                return "Failed... : " + e.getMessage();
            }
        }

        @Override
        protected void onPostExecute(PersonProto.ResultMsgResponse result) {
            try {
                mChannel.shutdown().awaitTermination(1, TimeUnit.SECONDS);
            } catch (InterruptedException e) {
                Thread.currentThread().interrupt();
            }
            Log.i("TAG", "onPostExecute:  result = " + result);
        }
    }

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值