sta / sta/websocket-sharp

SendAsync doesn't respect order

Open
#378 3 comments 4 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C#
Stars
6.1k
Forks
1.7k
PR merge metrics
No merged PRs in 30d

Description

When you call SendAsync multiple times, e.g. in a "for" loop, it's not guaranteed that messages will be sent in the same order.

This is easily reproduced in Unity 3D on Linux, and occasionally occurs in built Android apps. As I understand, this happens because sendAsync just starts async delegate invocation and it doesn't guarantee any order.

Is this behavior intentional and I should implement some kind of queueing myself or should I treat this behavior as a bug?

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the SendAsync implementation and the asynchronous delegate invocation it uses. Reproduce repeated SendAsync calls in a loop on Unity 3D/Linux or an Android build, then determine whether ordering is intentional and document or address the observed behavior accordingly.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.