kerryjiang / WebSocket4Net

A popular .NET WebSocket Client
752 stars 272 forks source link

Transmitted packet payloads sometimes replaced with previous payloads using wss:// #115

Closed berdon closed 6 years ago

berdon commented 6 years ago

First, I can only reproduce this when using wss:// and only at high packet transmission (ie. spinning up 128 packets to be sent at the same time).

I have the following code:

Trace.WriteLine(message);
var payload = Encoding.UTF8.GetBytes(message);
_internalWebSocket.Send(payload, 0, payload.Length);

The trace output shows the expected message below where X ranges from 1-128:

{"Id":"13"}
{"Id":"14"}
{"Id":"12"}
{"Id":"8"}
{"Id":"10"}
{"Id":"16"}
{"Id":"9"}
{"Id":"19"}
...

However, Fiddler decrypting the SSL traffic shows duplicate packets not matching the traced statements:

{"Id":"13"}
{"Id":"14"} x24
{"Id":"30"} x23
{"Id":"18"} x6
{"Id":"21"}
{"Id":"69"}
{"Id":"20"}
{"Id":"17"}
{"Id":"71"}
{"Id":"72"}
{"Id":"70"} x3
{"Id":"77"}
{"Id":"15"}
{"Id":"78"} x13
{"Id":"86"}
{"Id":"73"} x2
{"Id":"94"} x2
{"Id":"96"} x43
{"Id":"112"}
{"Id":"79"}
berdon commented 6 years ago

Closing as this is an underlying issue with SuperSocket.ClientEngine. See https://github.com/kerryjiang/SuperSocket.ClientEngine/issues/76 for more information.