diff --git a/actioncable/app/assets/javascripts/action_cable.js b/actioncable/app/assets/javascripts/action_cable.js index d2c264baa4..22edeccf30 100644 --- a/actioncable/app/assets/javascripts/action_cable.js +++ b/actioncable/app/assets/javascripts/action_cable.js @@ -166,7 +166,7 @@ if (!allowReconnect) { this.monitor.stop(); } - if (this.isActive()) { + if (this.isOpen()) { return this.webSocket.close(); } } diff --git a/actioncable/app/assets/javascripts/actioncable.esm.js b/actioncable/app/assets/javascripts/actioncable.esm.js index 416448ce6c..2187eb90bf 100644 --- a/actioncable/app/assets/javascripts/actioncable.esm.js +++ b/actioncable/app/assets/javascripts/actioncable.esm.js @@ -172,7 +172,7 @@ class Connection { if (!allowReconnect) { this.monitor.stop(); } - if (this.isActive()) { + if (this.isOpen()) { return this.webSocket.close(); } } diff --git a/actioncable/app/assets/javascripts/actioncable.js b/actioncable/app/assets/javascripts/actioncable.js index e8f48805e0..b3cc4299db 100644 --- a/actioncable/app/assets/javascripts/actioncable.js +++ b/actioncable/app/assets/javascripts/actioncable.js @@ -166,7 +166,7 @@ if (!allowReconnect) { this.monitor.stop(); } - if (this.isActive()) { + if (this.isOpen()) { return this.webSocket.close(); } } diff --git a/actioncable/app/javascript/action_cable/connection.js b/actioncable/app/javascript/action_cable/connection.js index 87584545cc..d21761bd07 100644 --- a/actioncable/app/javascript/action_cable/connection.js +++ b/actioncable/app/javascript/action_cable/connection.js @@ -44,7 +44,8 @@ class Connection { close({allowReconnect} = {allowReconnect: true}) { if (!allowReconnect) { this.monitor.stop() } - if (this.isActive()) { + // Avoid closing websockets in a "connecting" state due to Safari 15.1+ bug. See: https://github.com/rails/rails/issues/43835#issuecomment-1002288478 + if (this.isOpen()) { return this.webSocket.close() } }