stackblitz / webcontainer-core

Dev environments. In your web app.
https://webcontainers.io
MIT License
3.81k stars 148 forks source link

WebSocket binary frame - added additional 2bytes #1476

Open remocons opened 3 months ago

remocons commented 3 months ago

Describe the bug

There is an issue with the binary frame data in the WebSocket messages sent from the server. A 2-byte information starting with 0x82 is added in front of the data.

Hex 00 00 00 00 00 was sent, but hex 0x82 0x05 00 00 00 00 00 was received.

Link to the blitz that caused the error

https://stackblitz.com/~/github.com/remocons/ws-websocket-example?file=ws_server.js

Steps to reproduce

Expected behavior

Parity with Local

Screenshots

stackblitz

stackblitz-ws-websocket-example

codesandbox

codesandbox_ws-websocket-example

replit

replit_ws-websocket-example

3 screen shot: codesandbox vs replit vs stackblitz

Platform

Version = 1.84.0
Hash = 499be3932f50ab06349575b1c9042f95bc072a8b
WebContainer = 70dbe416

Browser name  = Chrome
Full version  = 126.0.0.0
Major version = 126
navigator.appName = Netscape
navigator.userAgent = Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36
performance.memory = {
  "totalJSHeapSize": 103522077,
  "usedJSHeapSize": 99367509,
  "jsHeapSizeLimit": 4294705152
}

Additional context

No response

remocons commented 3 months ago

It appears that this issue was reported 10 months ago. #1182 However, it is surprising that it has not been resolved yet. Since it is merely an issue with the offset and size when transmitting arraybuffers, it seems to be a simple problem to fix. Most WebSocket examples use only text messages, so they may not recognize problems when communicating with binary data. I am developing an open-source library called iosignal that provides real-time binary communication using WebSockets, so solving this issue is very important. Although it could be replaced with a blob, there are compatibility issues with other standard environments, so I hope for a prompt fix in StackBlitz's webcontainer.