更有效的异步websocket发送方法

时间:2018-11-07 18:05:48

标签: javascript sockets asynchronous websocket w3c

我想使(W3C)websocket send方法异步,它将返回promise,当将数据有效载荷发送到网络时,它将被解决。

由于发送数据时官方API没有回调,因此我想解决的唯一方法是使用套接字的bufferedAmount属性。

我认为效率不高,因为我需要调用setTimeout并在解决承诺之前轮询值直到缓冲区被耗尽为止

还有其他更有效的方法吗?

asyncSend(buffer){
    this.socket.send(buffer); 
    return new Promise(resolve => {
        let checkSend = () => {
            if(this.socket.bufferedAmount === 0){
                resolve(buffer.length);
            }
            else{
                setTimeout(checkSend, 1);
            }
        }
    });  
}

0 个答案:

没有答案