summaryrefslogtreecommitdiff
path: root/extensions/websocket/01_websocket.js
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/websocket/01_websocket.js')
-rw-r--r--extensions/websocket/01_websocket.js56
1 files changed, 23 insertions, 33 deletions
diff --git a/extensions/websocket/01_websocket.js b/extensions/websocket/01_websocket.js
index c77af4566..9fc608958 100644
--- a/extensions/websocket/01_websocket.js
+++ b/extensions/websocket/01_websocket.js
@@ -118,44 +118,32 @@
url: wsURL.href,
protocols: protocols.join(", "),
}).then((create) => {
- if (create.success) {
- this.#rid = create.rid;
- this.#extensions = create.extensions;
- this.#protocol = create.protocol;
-
- if (this.#readyState === CLOSING) {
- core.opAsync("op_ws_close", {
- rid: this.#rid,
- }).then(() => {
- this.#readyState = CLOSED;
+ this.#rid = create.rid;
+ this.#extensions = create.extensions;
+ this.#protocol = create.protocol;
+
+ if (this.#readyState === CLOSING) {
+ core.opAsync("op_ws_close", {
+ rid: this.#rid,
+ }).then(() => {
+ this.#readyState = CLOSED;
- const errEvent = new ErrorEvent("error");
- errEvent.target = this;
- this.dispatchEvent(errEvent);
+ const errEvent = new ErrorEvent("error");
+ errEvent.target = this;
+ this.dispatchEvent(errEvent);
- const event = new CloseEvent("close");
- event.target = this;
- this.dispatchEvent(event);
- tryClose(this.#rid);
- });
- } else {
- this.#readyState = OPEN;
- const event = new Event("open");
+ const event = new CloseEvent("close");
event.target = this;
this.dispatchEvent(event);
-
- this.#eventLoop();
- }
+ tryClose(this.#rid);
+ });
} else {
- this.#readyState = CLOSED;
-
- const errEvent = new ErrorEvent("error");
- errEvent.target = this;
- this.dispatchEvent(errEvent);
+ this.#readyState = OPEN;
+ const event = new Event("open");
+ event.target = this;
+ this.dispatchEvent(event);
- const closeEvent = new CloseEvent("close");
- closeEvent.target = this;
- this.dispatchEvent(closeEvent);
+ this.#eventLoop();
}
}).catch((err) => {
this.#readyState = CLOSED;
@@ -362,7 +350,9 @@
case "error": {
this.#readyState = CLOSED;
- const errorEv = new ErrorEvent("error");
+ const errorEv = new ErrorEvent("error", {
+ message: value,
+ });
errorEv.target = this;
this.dispatchEvent(errorEv);