首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在android中检查signalr hubconnection是否在线?

问如何在android中检查signalr hubconnection是否在线?
EN

Stack Overflow用户
提问于 2017-08-03 20:14:10
回答 1查看 1.1K关注 0票数 0

我正在使用signalr进行聊天应用程序接口,signalr服务正在启动并获取聊天消息一段时间后,signalr集线器连接没有响应,im无法与signalR服务器联系。如何在android中检查signalr hubconnection是否在线。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-09 21:07:59

当你调用这个方法而不是这个实例的时候,你可以得到hubconnection的当前状态。

代码语言:javascript
复制
private void startSignalR() {
        Platform.loadPlatformComponent(new AndroidPlatformComponent());
        mInstance.setmHubConnection(getApplicationContext());
        mInstance.setHubProxy();
        ClientTransport clientTransport = new ServerSentEventsTransport(mInstance.mHubConnection.getLogger());
        signalRFuture = mInstance.mHubConnection.start(clientTransport);
        try {
            signalRFuture.get();
        } catch (InterruptedException | ExecutionException e) {
            SharedPrefUtil.clearAllSharedPreferences(getApplicationContext());
            Toast.makeText(getApplicationContext(), getString(R.string.wrong_server), Toast.LENGTH_LONG).show();
            Log.e("SimpleSignalR", e.toString());
            return;
        }

        mInstance.mHubConnection.error(new ErrorCallback() {

            @Override
            public void onError(Throwable error) {
                error.printStackTrace();
            }
        });

        // Subscribe to the connected event
        mInstance.mHubConnection.connected(new Runnable() {

            @Override
            public void run() {
                System.out.println("CONNECTED");
            }
        });

        mInstance.mHubConnection.reconnected(new Runnable() {

            @Override
            public void run() {

                System.out.println("RECONNECTED");
            }
        });
        // Subscribe to the closed event
        mInstance.mHubConnection.closed(new Runnable() {

            @Override
            public void run() {

                System.out.println("DISCONNECTED");
            }
        });

        mInstance.mHubProxy.on(SignalRConstant.CLIENT_METHOD_BROADAST_MESSAGE,
                new SubscriptionHandler2<String, Object>() {
                    @Override
                    public void run(final String msg, final Object data) {
                        if (msg != null && data != null && !data.equals("")) {
                            Intent intent = new Intent();
                            intent.setAction(MY_ACTION);
                            intent.putExtra("CAPTION", msg);
                            if(msg.equals(SignalRConstant.CAPTION_LOGINPASS))
                            {
                                Gson gson = new GsonBuilder().setDateFormat(AppConstant.DATE_FORMAT).create();
                                intent.putExtra("DATA", gson.toJson(data));
                            }else{
                                intent.putExtra("DATA", data.toString());
                            }
                            sendBroadcast(intent);
                        }
                    }
                }
                , String.class, Object.class);
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45483894

复制
相关文章

相似问题

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