为什么Chrome无法紧密地通过网络套接字发送,而Firefox却不能?

时间:2018-12-06 21:37:10

标签: javascript websocket

这是我最近的问题here的后续活动,因为我进一步缩小了范围。

我正在研究通过浏览器通过Websocket以1MB的块流式传输大文件的功能,但是Chrome的websocket实施似乎无法跟上文件读取器的速度。下面的代码在Firefox(版本63)中可以正常工作,但是在Chrome(版本68)中却难以抓取,并且似乎冻结了浏览器。有什么想法吗?

一个简单的websocket服务器来接收数据:

const WebSocket = require('ws')

const wsServer = new WebSocket.Server({ port: 9001 })

浏览器代码:

<!doctype html>
<html>
  <head>
  </head>

  <body>
    <input id='file_button' type='file'></input>
    <script>
      const ws = new WebSocket('ws://localhost:9001')

      const data = new Uint8Array(1024*1024).fill(1)

      ws.onopen = () => {
        for (let i = 0; i < 1000; i++) {
          console.log("send")
          ws.send(data)
        }
      }
    </script>
  </body>
</html>

0 个答案:

没有答案