当我更改连接时,我的应用程序崩溃并显示以下堆栈跟踪:
E/AndroidRuntime: FATAL EXCEPTION: Timer-3
Process: com.app.teemchat, PID: 9383
io.deepstream.DeepstreamException: CONNECTION_ERROR: null
at io.deepstream.DeepstreamClientAbstract.onError(DeepstreamClientAbstract.java:59)
at io.deepstream.Connection$1.run(Connection.java:187)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)
请帮助我解决这个问题...
client.addConnectionChangeListener(new ConnectionStateListener() {
@Override
public void connectionStateChanged(ConnectionState connectionState) throws RuntimeException {
Log.w(Tag, "ConnectionChange>>> " + connectionState.toString());
if (connectionState.toString().equalsIgnoreCase(ConnectionState.ERROR.toString())) {
client.close();
doLogin();
}
if (connectionState.toString().equalsIgnoreCase(ConnectionState.CLOSED.toString())) {
doLogin();
}
}
});
答案 0 :(得分:0)
AlexBHarley说您需要添加setRuntimeErrorHandler
https://github.com/deepstreamIO/deepstream.io-client-java/issues/85
从某种意义上说这是预期的,因为连接已经终止,因此 是CONNECTION_ERROR。如果您不希望这引发异常 您可以将侦听器放在错误事件上 client.setRuntimeErrorHandler。诚然,原因可能会更好 比null。当前的方法是两件事之一,
无限次重新连接尝试会存储一些本地状态并重新启动 互联网连接恢复时的会话。我们希望解决 通过恢复会话和一些更好的脱机优先功能 就像在不久的将来。