webcontainer-core icon indicating copy to clipboard operation
webcontainer-core copied to clipboard

WebSocket binary frame - added additional 2bytes

Open remocons opened this issue 1 year ago • 1 comments

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

  • please open the example
  • click the [send binary frame: 5bytes] button => received data size is 7bytes instead 5bytes.
  • click the [request_4bytes] button => received data size is 6bytes instead 4bytes.
  • text message is okay.

Expected behavior

  • click the [send binary frame: 5bytes] button => received data size is 7bytes instead 5bytes.
  • click the [request_4bytes] button => received data size is 6bytes instead 4bytes.

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 avatar Jun 28 '24 17:06 remocons

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.

remocons avatar Jun 29 '24 16:06 remocons

This should now be marked as closed - see https://github.com/stackblitz/webcontainer-core/issues/1182 :)

somebee avatar Apr 08 '25 05:04 somebee

This is indeed fixed now. Thanks @somebee for flagging this :)!

SamVerschueren avatar Apr 09 '25 15:04 SamVerschueren