Skip to content

Commit ab27141

Browse files
committed
Fix implementation of MaxFrameSize
1 parent b909cab commit ab27141

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

src/netstandard/Extensions/WampSharp.WebSockets/WebSockets/WebSocketWrapperConnection.cs

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -57,25 +57,29 @@ await mWebSocket.SendAsync(messageToSend, WebSocketMessageType, true, mCancellat
5757
{
5858
int maxFrameSize = mMaxFrameSize.Value;
5959

60-
int numberOfFrames = messageToSend.Count / maxFrameSize;
60+
int remainingSize = messageToSend.Count;
6161

62-
for (int i = 0; i < numberOfFrames; i++)
63-
{
64-
bool endOfMessage = false;
65-
int currentFrameSize = maxFrameSize;
62+
bool endOfMessage = false;
63+
int currentFrameSize = maxFrameSize;
64+
int offset = 0;
6665

67-
if (i == numberOfFrames - 1)
66+
while (remainingSize > 0)
67+
{
68+
if (remainingSize < maxFrameSize)
6869
{
6970
endOfMessage = true;
70-
currentFrameSize = messageToSend.Count - maxFrameSize * i;
71+
currentFrameSize = remainingSize;
7172
}
7273

7374
ArraySegment<byte> partialMessage = new ArraySegment<byte>(messageToSend.Array,
74-
i * maxFrameSize,
75+
offset,
7576
currentFrameSize);
7677

7778
await mWebSocket.SendAsync(partialMessage, WebSocketMessageType, endOfMessage, mCancellationToken)
7879
.ConfigureAwait(false);
80+
81+
offset += maxFrameSize;
82+
remainingSize -= maxFrameSize;
7983
}
8084
}
8185
}

0 commit comments

Comments
 (0)