2

如何检查 twitter 流 API 是连接还是断开连接?是否有任何变量存储此信息?

失败时,Twitter Hosebird 客户端 (hbc) 在内部尝试重新连接到 API。记录此信息。如何在变量中检索连接的响应状态?

4

1 回答 1

1

这是一个相当老的问题,但由于我遇到了同样的问题,我想分享我的解决方案。基本上,我所做的是监听SocketTimeoutException异常,如果发生,我设置一个 boolean isConnected = false。一旦我再次开始接收状态,我将该布尔值设置回isConnected = true. 这不是最漂亮的解决方案,但它有效。这是我的监听器代码:

private StatusListener createListener() {
    return new StatusListener() {
        @Override
        public void onStatus( Status tweet ) {
            if (!isConnected)
                isConnected = true;

            doSomething(tweet);
        }

        ( ... ) // Other @Override functions

        @Override
        public void onException( Exception ex ) {
            if ( ( ex instanceof SocketTimeoutException ) && isConnected ) {
                handleConnectionLoss();
                isConnected = false;
            } else {
                System.err.println(ex);
            }
        }
    };
}
于 2017-03-08T10:49:25.467 回答