这是我最近的问题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>