Can I have flow control on my websockets?

前端 未结 3 1989
庸人自扰
庸人自扰 2021-02-03 10:22

I am using websockets to transfer video-y images from a server, written in Go, to a client which is an HTML page. My experience shared below is with Chrome.

I receive im

3条回答
  •  野的像风
    2021-02-03 11:11

    It’s now possible to have streams within WebSocket. Chrome 78 will ship with a new WebSocketStream API, which supports backpressure.

    Here’s a quote from Chrome Platform Status:

    The WebSocket API provides a JavaScript interface to the RFC6455 WebSocket protocol. While it has served well, it is awkward from an ergonomics perspective and is missing the important feature of backpressure. The intent of the WebSocketStream API is to resolve these deficiencies by integrating streams with the WebSocket API.

    Currently applying backpressure to received messages is not possible with the WebSocket API. When messages arrive faster than the page can handle them, the render process will either fill up memory buffering those messages, become unresponsive due to 100% CPU usage, or both.

    Applying backpressure to sent messages is possible but involves polling the bufferedAmount property which is inefficient and unergonomic.

    Unfortunately this is a Chrome-only API and there is no web standard at time of writing.

    For further info see:

    • Issue 983030: Implement WebSocketStream

提交回复
热议问题