Соединение Websocket не было закрыто после закрытия приложенияAndroid

Форум для тех, кто программирует под Android
Anonymous
Соединение Websocket не было закрыто после закрытия приложения

Сообщение Anonymous »

Мой клиент Websocket (OkHttp) не закрывает соединение после закрытия приложения. Он открывает новое соединение каждый раз, когда я открываю приложение, из-за чего приложение страдает от нескольких сообщений, полученных по старым и новым соединениям Websocket от сервера вещания.

Это так? нормальное поведение для клиента Android, а что касается того, что я испытал с веб-клиентом, сеанс был правильно закрыт после закрытия вкладки?

Я искал проблема в Интернете, но пока безуспешно. Я хочу убедиться, произошло ли это из-за моей плохой логики кода или просто из-за ошибочной реализации Websocket из библиотеки?

Вот как я начинаю новый сеанс веб-сокета в основная деятельность

Код: Выделить всё

var request: Request = Request.Builder()
.url("ws://$serverIP:8080/example/sim/speed")
.build()
var webSocketListener: WebSocketListener = object : WebSocketListener() {

override fun callback(msg: Message) {
updateSpeed(msg.content)
}

override fun onClosing(webSocket: WebSocket?, code: Int, reason: String?) {
super.onClosing(webSocket, code, reason)
}
}

var webSocket = client!!.newWebSocket(request, webSocketListener)

После этого updateSpeed() обновит текстовое представление в UIThread

The onClosed не было вызвано при закрытии приложения, а только тогда, когда функция close вызывалась вручную.

Я уверен, что она каждый раз открывала новый сокет потому что я вижу новые сеансы, созданные на сервере с разными портами.

Я хочу, чтобы приложение закрывало свое соединение до того, как оно будет закрыто.
Спасибо

Подробнее здесь: https://stackoverflow.com/questions/573 ... app-killed

Вернуться в «Android»