-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WebSocket: Support multi-framing sends #683
Comments
Note, that after further analysis, I have an application sending messages of size 2_536_240 +/- bytes. These messages never arrive at the other side when sent with this library. I am suspecting that framing would help. I have tried both python The issue only exists when the message size > 300kB. Somewhere beyond that, they silently disappear into the ether. 348951 works, 348997 does not work.
If this could work with a single frame, I would accept that, but there's something very not right, and I think multi-framing would help? But if frames over 348k are broken, that implies a max frame size, or there's a bug. |
Ok thanks, I'll take a look. |
300k is a strange delimiter. d |
I created a push request that fixes the issue for me but it is suboptimal.
Check the push requests for the project.
Based on that pull request I think there's something else going on maybe at the operating system level that's making that specific length and issue.
Edit
#684 (comment)
|
Yes I looked all over it and I did come across that but I wasn't sure what was going on there I compared it to other websocket code and it almost agreed but not enough for me to say that I understood it |
is this a http or https websocket? are you using this library as a server or client websocket? |
Unencrypted websocket server. |
Per RFC 6455
10.4. Implementation-Specific Limits
client can choose a maximum frame size. It seems that inprivate byte[] frame(int opcode, byte [] data, int errorCode, int dataOffset, int dataLength)
that there is no maximum frame size applied. The data is shoved into a single frame and delivered this cause problems with clients who do implement a maximum frame size.
I suggest there be a setMaxFrameSize() function added and the data to be fragmented into multiple frames when it exceeds the maximum frame size.
The text was updated successfully, but these errors were encountered: