websocket icon indicating copy to clipboard operation
websocket copied to clipboard

Add WebAssembly support (GOARCH=wasm).

Open silbinarywolf opened this issue 7 years ago • 3 comments
trafficstars

This package should be updated to use the following library so that websocket usage can target wasm and gopherjs: "github.com/gopherjs/gopherwasm/js"

This will require wrapping callbacks with js.NewEventCallback() (and calling .Release()) and changing *js.Object to js.Value

silbinarywolf avatar Aug 28 '18 08:08 silbinarywolf

I have something functional but not elegant available for those interested here: https://github.com/gopherjs/websocket/pull/26

I'm not really interested in covering this off properly as I will most likely move away from Websocket in the future.

silbinarywolf avatar Sep 07 '18 03:09 silbinarywolf

Thanks for opening the issue, and for sending a draft PR!

I tested it with one of my projects that uses WebSockets just now, and I can see that it compiles and functions partially, but after some amount of bytes (or messages), there is a discrepancy in the data sent/received, causing my protocol to report an error.

Still, it's helpful to have it as a reference, so thanks for providing it!

dmitshur avatar Sep 12 '18 06:09 dmitshur

@dmitshur Instead of adding support for WASM to this package, what are your thoughts on recommending my WebSocket package instead? The client side can target WASM directly with nearly the same API as for non WASM targets

See https://github.com/nhooyr/websocket/pull/142

It should also work for GopherJS once GopherJS supports Go 1.13.

This would also resolve #29 and every other issue/PR on this library.

nhooyr avatar Sep 22 '19 02:09 nhooyr