У меня проблема с переподключением websocket. При первом запуске приложения не возникает проблем с созданием соединения через веб-сокет. Затем я выключил Wi-Fi, и через несколько секунд я снова включил Wi-Fi, и я получил следующее исключение в моем обратном вызове onFailure.
WS onFailure javax.net.ssl.SSLException: Read error: ssl=0xbf4618c0: I/O error during system call, Software caused connection abort
E/Mqtt: WS onFailure java.io.InterruptedIOException: executor rejected
E/Mqtt: WS onFailure java.io.InterruptedIOException: executor rejected
E/Mqtt: WS onFailure java.io.InterruptedIOException: executor rejected
E/Mqtt: WS onFailure java.io.InterruptedIOException: executor rejected
E/Mqtt: WS onFailure java.io.InterruptedIOException: executor rejected
Вот мой метод подключения:
public fun connect()
{
if(mConnecting)
return
mConnecting = true
val request = Request.Builder().url(mSocketUrl).build()
mWebSocket = mOkHttpClient.newWebSocket(request, this)
mOkHttpClient.dispatcher().executorService().shutdown()
}
Вот обратный вызов websocket onFailure
override fun onFailure(webSocket: WebSocket?, t: Throwable, response: Response?)
{
Log.e(TAG, "WS onFailure $t")
mConnecting = false
reconnect()
}
, а вот мой метод переподключения
public fun reconnectMqtt()
{
if(mStopping)
return
if(mMqttConnection == null)
{
startMqtt()
return
}
if(!mMqttConnection!!.mConnecting)
{
// mMqttConnection = null
// startMqtt()
Handler(Looper.getMainLooper()).postDelayed({
mMqttConnection!!.connect()
}, 1000)
}
}
Я много искал, но ничего не помогало. любая помощь будет оценена. Заранее спасибо !!