如何检查Twitter流API是否已连接或断开连接?是否有存储此信息的变量?
On Failure,Twitter Hosebird Client(hbc)在内部尝试重新连接到API。记录此信息。如何在变量中检索连接的响应状态?
答案 0 :(得分:1)
这是一个相当古老的问题,但由于我遇到了同样的问题,我想分享我的解决方案。基本上,我所做的是侦听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);
}
}
};
}