diff --git a/modules/websocket/src/main/scala/io/laminext/websocket/WebSocket.scala b/modules/websocket/src/main/scala/io/laminext/websocket/WebSocket.scala index 5ec9f1a2..33565aa4 100644 --- a/modules/websocket/src/main/scala/io/laminext/websocket/WebSocket.scala +++ b/modules/websocket/src/main/scala/io/laminext/websocket/WebSocket.scala @@ -121,20 +121,20 @@ class WebSocket[Receive, Send]( } private def trySend(): Unit = { - if (connectedVar.now()) { - maybeWS.foreach { ws => - sendBuffer.foreach { message => - sender(ws, message) - } - sendBuffer.clear() - } - } else { + val connectedWS = maybeWS.filter(_.readyState == 1 /* OPEN */ ) + if (js.isUndefined(connectedWS)) { if (!bufferWhenDisconnected) { sendBuffer.clear() } else if (sendBuffer.size > bufferSize) { sendBuffer.drop(sendBuffer.size - bufferSize) } } + connectedWS.foreach { ws => + sendBuffer.foreach { message => + sender(ws, message) + } + sendBuffer.clear() + } } def connect[El <: ReactiveElement.Base]: Binder[El] =