New issue
Advanced search Search tips

Issue 870965 link

Starred by 1 user

Issue metadata

Status: Duplicate
Merged: issue 865001
Owner: ----
Closed: Aug 12
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Bug



Sign in to add a comment

Adjust max size of frame in Websocket

Reported by alx...@gmail.com, Aug 4

Issue description

UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36

Steps to reproduce the problem:
1. blob size > 113KB, for example 600KB
2. websocket.send(blob)
3. Chrome fragments large message into multiple frames

What is the expected behavior?
One frame is enough! Don`t fragments small messages.

What went wrong?
Bandwidth is larger, Memory is larger, Message is larger.
Too much frames cost lot of times! Affect web application performance.
Don`t fragments message, like firefox!

Did this work before? No 

Does this work in other browsers? Yes

Chrome version: 68.0.3440.84  Channel: stable
OS Version: 18.04
Flash Version:
 
send File(size 1.7MB)

Firefox, only one Websocket Binary Frame. Cost 329ms.

Chorme, 15 Websocket Binary Frame. About 112KB per frame. Cos 2214ms.
Labels: Needs-Triage-M68
I found a bug report in 2015: https://bugs.chromium.org/p/chromium/issues/detail?id=517090

After test. The reason is server do not support "Receive fragmented message". When i change the server from netty to Gorilla WebSocket, the problem solved. Just one frame posted by chrome. But speed of chrome is slower than firefox too.

I`m dev file server in Intranet. The Bandwidth is 100MB/second. I want to split File myself with File.slice(), so i can control the performance myself and get the progress info.

The most critical problem is most websocket server do not support "Receive fragmented message".
Components: -Blink>Network Blink>Network>WebSockets
Labels: Needs-Feedback
> The most critical problem is most websocket server do not support "Receive fragmented message".

Fragmented message is a requirement of RFC6455. Are you saying that most websocket servers don't comply with it?

By the way, sending a blob is very inefficient in Chrome. Please see issue 571656.
For a 600KB message the extra overhead is 70 bytes, or 0.01%. Chrome's WebSockets are reportedly slower than Firefox's, but message fragmentation is not the cause.
Yes, most websocket servers don't fully support RFC6455.

I want to replace ajax with websocket. So, i must solve this problem. Chrome can not adjust anything now, i will try to change my server side.

I will complete the migration(from netty to Gorilla WebSocket) of the websocket server tomorrow.

Chrome is my lovest chioce. Please make the performace of websocket to the best.
Project Member

Comment 7 by sheriffbot@chromium.org, Aug 10

Cc: yhirano@chromium.org
Labels: -Needs-Feedback
Thank you for providing more feedback. Adding the requester to the cc list.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Mergedinto: 865001
Status: Duplicate (was: Unconfirmed)
Frame sizes are working as intended. Dupping against issue 865001 for the performance.

Sign in to add a comment