-
Notifications
You must be signed in to change notification settings - Fork 297
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
Transmit only single frame in Write when compression enabled too #435
Comments
Are you using If you are using |
Also are you using the latest version or are you on 1.8.7 still? |
Thanks for the response. I have tested on 1.8.10 and it is the same behavior if compression is enabled ( The code uses I can make a minimal example to reproduce if it's helpful. |
No need I see it, the problem is here: https://github.com/nhooyr/websocket/blob/e3a2d32f704fb06c439e56d2a85334de04b50d32/write.go#L110 I need to extend this code to allow for single frame compression. |
I would suggest disabling compression till I get to this. Hopefully within the next 2 months. |
Thank you, will do. |
Hi I am experiencing a pretty weird behavior and I am unsure if this is intentional or not.
We have had problems with bad client performance when reading data from a websocket in a game client based on Unreal Engine.
I have investigated this and with compression enabled each message is chopped up in tiny frames (the problem surfaced when we run with 1.8.7 which had compression on by default). The problem with Unreal is that it only reads one frame per client tick (~8 milliseconds) by default.
When I inspect this in Wireshark it looks like every other frame has a 236 byte payload and every other has a 4 byte payload.
I also run it in the debugger and it looks like the server will send a frame for each write call from the flate lib (github.com/klauspost/compress) and it has a hard coded
bufferFlushSize
set to 240 which in turn causes all those individual calls towriteFrame
.Is this intentional?
The text was updated successfully, but these errors were encountered: