Skip to content

Transmit only single frame in Write when compression enabled too #435

Open
@andersroos

Description

@andersroos

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 to writeFrame.

Is this intentional?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions