我们正在通过 websocket 发送大量数据(从 Node.js 应用程序到 Web 浏览器)。
数据是 形式的二进制数据blobs
。
有时,最终用户的连接不佳 - 在这种情况下,我们希望“跳过”消息(将它们排除在外),并确保我们不会塞入超过用户接收能力的数据。
在服务器端,我们尝试过:
function sendBlob(blob, socket) {
console.log('socket.bufferedAmount: ' + socket.bufferedAmount); // Always zero
if (socket.bufferedAmount > 0) {
return; // Never called
}
socket.send(blob);
}
不幸的是bufferedAmount
总是返回零。
这是查看有多少数据正在排队但未在 websockets 中发送/接收的正确方法,还是有更好的方法来实现这一点?
(也尝试socket.bufferedAmount
在客户端登录,但它也总是返回零)。