From 2249a44acac058972a045f6295d2465dc0d659b1 Mon Sep 17 00:00:00 2001 From: Li Haoyi Date: Thu, 19 Sep 2019 14:11:30 +0800 Subject: Update WebsocketClientImpl.scala --- cask/util/src-js/cask/util/WebsocketClientImpl.scala | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cask/util/src-js/cask/util/WebsocketClientImpl.scala b/cask/util/src-js/cask/util/WebsocketClientImpl.scala index f129893..bab6e38 100644 --- a/cask/util/src-js/cask/util/WebsocketClientImpl.scala +++ b/cask/util/src-js/cask/util/WebsocketClientImpl.scala @@ -28,6 +28,8 @@ abstract class WebsocketClientImpl(url: String) extends WebsocketBase{ def onError(ex: Exception): Unit def onMessage(value: String): Unit def onClose(code: Int, reason: String): Unit - def close(): Unit = websocket.close() + def close(): Unit = { + if (!closed) websocket.close() + } def isClosed() = closed -} \ No newline at end of file +} -- cgit v1.2.3 From 7012bb22c82131222c32c6d63e3c235538f4c260 Mon Sep 17 00:00:00 2001 From: Li Haoyi Date: Thu, 19 Sep 2019 14:14:55 +0800 Subject: Update WsClient.scala --- cask/util/src/cask/util/WsClient.scala | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/cask/util/src/cask/util/WsClient.scala b/cask/util/src/cask/util/WsClient.scala index b0f56d0..74f38e2 100644 --- a/cask/util/src/cask/util/WsClient.scala +++ b/cask/util/src/cask/util/WsClient.scala @@ -14,7 +14,6 @@ class WsClient(impl: WebsocketBase) case Ws.Close(_, _) => impl.close() case Ws.ChannelClosed() => impl.close() } - def close() = impl.close() } object WsClient{ @@ -52,4 +51,4 @@ object WsClient{ impl.connect() p.future } -} \ No newline at end of file +} -- cgit v1.2.3 From e44b9de83a91f0e3e56a9234b6880312f585138b Mon Sep 17 00:00:00 2001 From: Li Haoyi Date: Thu, 19 Sep 2019 14:16:10 +0800 Subject: Update WebsocketClientImpl.scala --- cask/util/src-jvm/cask/util/WebsocketClientImpl.scala | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/cask/util/src-jvm/cask/util/WebsocketClientImpl.scala b/cask/util/src-jvm/cask/util/WebsocketClientImpl.scala index 5570356..0ac8c1d 100644 --- a/cask/util/src-jvm/cask/util/WebsocketClientImpl.scala +++ b/cask/util/src-jvm/cask/util/WebsocketClientImpl.scala @@ -4,8 +4,9 @@ import org.java_websocket.handshake.ServerHandshake abstract class WebsocketClientImpl(url: String) extends WebsocketBase{ var websocket: Client = null - + var closed = false def connect(): Unit = { + closed = false websocket = new Client() websocket.connect() } @@ -32,8 +33,11 @@ abstract class WebsocketClientImpl(url: String) extends WebsocketBase{ WebsocketClientImpl.this.onOpen() } def onMessage(message: String) = WebsocketClientImpl.this.onMessage(message) - def onClose(code: Int, reason: String, remote: Boolean) = WebsocketClientImpl.this.onClose(code, reason) + def onClose(code: Int, reason: String, remote: Boolean) = { + closed = true + WebsocketClientImpl.this.onClose(code, reason) + } def onError(ex: Exception) = WebsocketClientImpl.this.onError(ex) } -} \ No newline at end of file +} -- cgit v1.2.3 From 768fcb9b53b71d39ac43fa1b019db28d87deef25 Mon Sep 17 00:00:00 2001 From: Li Haoyi Date: Thu, 19 Sep 2019 14:16:24 +0800 Subject: Update WebsocketClientImpl.scala --- cask/util/src-js/cask/util/WebsocketClientImpl.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cask/util/src-js/cask/util/WebsocketClientImpl.scala b/cask/util/src-js/cask/util/WebsocketClientImpl.scala index bab6e38..6d7c26f 100644 --- a/cask/util/src-js/cask/util/WebsocketClientImpl.scala +++ b/cask/util/src-js/cask/util/WebsocketClientImpl.scala @@ -7,7 +7,7 @@ abstract class WebsocketClientImpl(url: String) extends WebsocketBase{ var closed = false def connect(): Unit = { websocket = new dom.WebSocket(url) - + closed = false websocket.onopen = (e: dom.Event) => onOpen() websocket.onmessage = (e: dom.MessageEvent) => onMessage(e.data.asInstanceOf[String]) websocket.onclose = (e: dom.CloseEvent) => { -- cgit v1.2.3 From 5641ef570693c2ec674a773459e2d01934b2d5de Mon Sep 17 00:00:00 2001 From: Li Haoyi Date: Thu, 19 Sep 2019 14:17:05 +0800 Subject: Update WebsocketClientImpl.scala --- cask/util/src-jvm/cask/util/WebsocketClientImpl.scala | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cask/util/src-jvm/cask/util/WebsocketClientImpl.scala b/cask/util/src-jvm/cask/util/WebsocketClientImpl.scala index 0ac8c1d..2d65de6 100644 --- a/cask/util/src-jvm/cask/util/WebsocketClientImpl.scala +++ b/cask/util/src-jvm/cask/util/WebsocketClientImpl.scala @@ -26,7 +26,9 @@ abstract class WebsocketClientImpl(url: String) extends WebsocketBase{ } def onClose(code: Int, reason: String): Unit def onError(ex: Exception): Unit - def close(): Unit = websocket.close() + def close(): Unit = { + if (!closed) websocket.close() + } def isClosed() = websocket.isClosed() class Client() extends WebSocketClient(new java.net.URI(url)){ def onOpen(handshakedata: ServerHandshake) = { -- cgit v1.2.3 From c9467fb020cef7f36ab3b6c569182fbf5c549b75 Mon Sep 17 00:00:00 2001 From: Li Haoyi Date: Thu, 19 Sep 2019 14:18:23 +0800 Subject: Update WebsocketClientImpl.scala --- cask/util/src-jvm/cask/util/WebsocketClientImpl.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cask/util/src-jvm/cask/util/WebsocketClientImpl.scala b/cask/util/src-jvm/cask/util/WebsocketClientImpl.scala index 2d65de6..3344ce4 100644 --- a/cask/util/src-jvm/cask/util/WebsocketClientImpl.scala +++ b/cask/util/src-jvm/cask/util/WebsocketClientImpl.scala @@ -6,7 +6,7 @@ abstract class WebsocketClientImpl(url: String) extends WebsocketBase{ var websocket: Client = null var closed = false def connect(): Unit = { - closed = false + assert(closed == false) websocket = new Client() websocket.connect() } -- cgit v1.2.3 From 8f3daa0e811c76247bcaaa05ff82ff50f9af600d Mon Sep 17 00:00:00 2001 From: Li Haoyi Date: Thu, 19 Sep 2019 14:18:36 +0800 Subject: Update WebsocketClientImpl.scala --- cask/util/src-js/cask/util/WebsocketClientImpl.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cask/util/src-js/cask/util/WebsocketClientImpl.scala b/cask/util/src-js/cask/util/WebsocketClientImpl.scala index 6d7c26f..29ebfa7 100644 --- a/cask/util/src-js/cask/util/WebsocketClientImpl.scala +++ b/cask/util/src-js/cask/util/WebsocketClientImpl.scala @@ -7,7 +7,7 @@ abstract class WebsocketClientImpl(url: String) extends WebsocketBase{ var closed = false def connect(): Unit = { websocket = new dom.WebSocket(url) - closed = false + assert(closed == false) websocket.onopen = (e: dom.Event) => onOpen() websocket.onmessage = (e: dom.MessageEvent) => onMessage(e.data.asInstanceOf[String]) websocket.onclose = (e: dom.CloseEvent) => { -- cgit v1.2.3 From 256b13462ff2a9bbaa6ba62a6c8014487388247e Mon Sep 17 00:00:00 2001 From: Li Haoyi Date: Thu, 19 Sep 2019 14:26:04 +0800 Subject: Update WsClient.scala --- cask/util/src/cask/util/WsClient.scala | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cask/util/src/cask/util/WsClient.scala b/cask/util/src/cask/util/WsClient.scala index 74f38e2..f15d7df 100644 --- a/cask/util/src/cask/util/WsClient.scala +++ b/cask/util/src/cask/util/WsClient.scala @@ -14,6 +14,8 @@ class WsClient(impl: WebsocketBase) case Ws.Close(_, _) => impl.close() case Ws.ChannelClosed() => impl.close() } + + def close(code: Int = 1005, reason: String = "") = this.send(Ws.Close(code, reason)) } object WsClient{ -- cgit v1.2.3