diff options
Diffstat (limited to 'ext/websocket/01_websocket.js')
-rw-r--r-- | ext/websocket/01_websocket.js | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/ext/websocket/01_websocket.js b/ext/websocket/01_websocket.js index 15793a886..6c9bbc157 100644 --- a/ext/websocket/01_websocket.js +++ b/ext/websocket/01_websocket.js @@ -417,9 +417,14 @@ class WebSocket extends EventTarget { switch (kind) { case 0: { /* string */ + const data = op_ws_get_buffer_as_string(rid); + if (data === undefined) { + break; + } + this[_serverHandleIdleTimeout](); const event = new MessageEvent("message", { - data: op_ws_get_buffer_as_string(rid), + data, origin: this[_url], }); setIsTrusted(event, true); @@ -428,9 +433,14 @@ class WebSocket extends EventTarget { } case 1: { /* binary */ + const d = op_ws_get_buffer(rid); + if (d == undefined) { + break; + } + this[_serverHandleIdleTimeout](); // deno-lint-ignore prefer-primordials - const buffer = op_ws_get_buffer(rid).buffer; + const buffer = d.buffer; let data; if (this.binaryType === "blob") { data = new Blob([buffer]); |