Twitter HBC API:用于检查流式传输API连接状态的标志



如何检查twitter流API是否已连接或断开?是否有存储这些信息的变量?

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

这是一个相当古老的问题,但由于我遇到了同样的问题,我想分享我的解决方案。基本上,我所做的是侦听SocketTimeoutException异常,如果发生异常,我将设置一个布尔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);
            }
        }
    };
}

最新更新