为了账号安全,请及时绑定邮箱和手机立即绑定

在 Grpc-Android Java 中使用双向流时如何检测(物理)断开连接

在 Grpc-Android Java 中使用双向流时如何检测(物理)断开连接

Cats萌萌 2021-09-12 19:59:07
我一直在使用Bidirectional Streaming的概念Grpc使用Async stub。以下是我的代码@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    btnOnline = (Button) findViewById(R.id.btnOnline);    btnOffline = (Button) findViewById(R.id.btnOffline);    btnAcceptRide = (Button) findViewById(R.id.btnAcceptRide);    btnCancelRide = (Button) findViewById(R.id.btnCancelRide);    txtCode = (EditText) findViewById(R.id.txtCode);    txtReply = (TextView) findViewById(R.id.txtReply);    ClientConnState = 0;    btnOnline.setOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View view) {            new GrpcTask().execute();        }    });  private class GrpcTask extends AsyncTask<Void, Void, String> {    private String mHost;    private String mMessage;    private int mPort;    private ManagedChannel mChannel;    @Override    protected void onPreExecute() {        mHost = "localhost";        mPort = 8080;        mChannel = ManagedChannelBuilder.forAddress("192.168.0.102", 50049)                .usePlaintext(true)                .build();        blockingStub = bidirectionalserviceGrpc.newBlockingStub(mChannel);        asyncStub = bidirectionalserviceGrpc.newStub(mChannel);    }    @Override    protected String doInBackground(Void... nothing) {        try {            final CountDownLatch countDownLatch = new CountDownLatch(1);            requestStreamObserver = asyncStub.requestRide(new StreamObserver<Bidirectional.RideReply>() {                @Override                public void onNext(Bidirectional.RideReply value) {                    if (countDownLatch.getCount() > 0) {                        countDownLatch.countDown();                    }                                     }现在一切正常..我可以使用建立的流来ping/pong服务器/客户端。但是当我关闭服务器并从客户端发出流请求时,它会等待无穷大。我除了它抛出OnError()事件,但它没有。有人可以帮我解决这个问题吗?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 374 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信