Соединение 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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