Connect() is not the same on WebGL as on other builds
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 35/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Stale
- Tech stack
- csharp, unity
- Domain
- networking
Research direction
Start by tracing the WebGL implementation of Connect() and the OnOpen callback, then compare that flow with non-WebGL builds. Done means await websocket.Connect() does not complete before the socket is usable, allowing the subsequent SendText("hello") call to work without polling State.
Written by the indexing model from the issue text.
Description
I'm not sure if this is by design, or an issue, but on non-WebGL builds, await websocket.Connect() will return when the socket is open (or failed, I suppose).
On WebGL however, as Connect() returns Task.CompletedTask immediately, this isn't the case, and if you have this in a "synchronous" context, the socket isn't actually available. You need to loop and wait until OnOpen is called.
So this code:
await websocket.Connect();
await websocket.SendText("hello");
doesn't work on WebGL. You need to do something like:
await websocket.Connect();
// await wrapper around coroutine call with something like Unity3dAsyncAwaitUtil
await new WaitUntil( () => websocket.State == WebSocketState.Open );
await websocket.SendText("hello");
- Dominant language
- C#
- Stars
- 1.7k
- Forks
- 206
- PR merge metrics
- No merged PRs in 30d
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from endel/NativeWebSocket
-
Difficulty 4/5 3-5 days Newbie friendliness 48/100
endel/NativeWebSocket#107 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
endel/NativeWebSocket#102 · 1 comment · 1 reaction ·
-
Difficulty 3/5 1-2 days Newbie friendliness 25/100
endel/NativeWebSocket#101 · 6 comments · 2 reactions ·
-
Difficulty 4/5 3-5 days Newbie friendliness 20/100
endel/NativeWebSocket#95 · 1 reaction ·
-
Difficulty 5/5 Over a week Newbie friendliness 20/100
endel/NativeWebSocket#94 · 2 comments ·
All issues in endel/NativeWebSocket
Similar issues
-
core dependencies
Difficulty 1/5 Under an hour Newbie friendliness 80/100
-
bug frontend good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
NavigationViewItemAutomationPeer implements IInvokeProvider but never advertises the Invoke pattern Open
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
unoplatform/uno#24629 ·
-
agentic-workflows Needs: Triage :mag: State: In-PR
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
-
Down / Waiting for removal
Difficulty 2/5 1-3 hours Newbie friendliness 70/100