Clears the socket from memory upon closing.
This commit is contained in:
+11
-2
@@ -40,6 +40,8 @@ class OkHttpWebSocket(
|
||||
fun buildRequest() = Request.Builder().url(url.url).build()
|
||||
|
||||
override fun needsReconnect(): Boolean {
|
||||
if (socket == null) return true
|
||||
|
||||
val myUsingOkHttp = usingOkHttp
|
||||
if (myUsingOkHttp == null) return true
|
||||
|
||||
@@ -89,13 +91,19 @@ class OkHttpWebSocket(
|
||||
webSocket: okhttp3.WebSocket,
|
||||
code: Int,
|
||||
reason: String,
|
||||
) = out.onClosed(code, reason)
|
||||
) {
|
||||
socket = null
|
||||
out.onClosed(code, reason)
|
||||
}
|
||||
|
||||
override fun onFailure(
|
||||
webSocket: okhttp3.WebSocket,
|
||||
t: Throwable,
|
||||
response: Response?,
|
||||
) = out.onFailure(t, response?.code, response?.message)
|
||||
) {
|
||||
socket = null
|
||||
out.onFailure(t, response?.code, response?.message)
|
||||
}
|
||||
}
|
||||
|
||||
class Builder(
|
||||
@@ -111,6 +119,7 @@ class OkHttpWebSocket(
|
||||
override fun disconnect() {
|
||||
// uses cancel to kill the SEND stack that might be waiting
|
||||
socket?.cancel()
|
||||
socket = null
|
||||
}
|
||||
|
||||
override fun send(msg: String): Boolean = socket?.send(msg) ?: false
|
||||
|
||||
+2
-1
@@ -207,7 +207,8 @@ open class BasicRelayClient(
|
||||
code: Int?,
|
||||
response: String?,
|
||||
) {
|
||||
socket?.disconnect() // 1000, "Normal close"
|
||||
// socket is already closed
|
||||
// socket?.disconnect()
|
||||
|
||||
// checks if this is an actual failure. Closing the socket generates an onFailure as well.
|
||||
if (!(socket == null && (t.message == "Socket is closed" || t.message == "Socket closed"))) {
|
||||
|
||||
Reference in New Issue
Block a user