确定websocket send()是否完成

时间:2013-08-12 14:08:58

标签: javascript websocket

是否有办法在某个send()完成后收到通知?我注意到send()函数没有阻塞,代码连续。是否有一种简单的方法可以阻止它,或者如果发送完成则以某种方式通知?

1 个答案:

答案 0 :(得分:3)

你可以依赖Socket.bufferedamount(从未尝试过)

http://www.whatwg.org/specs/web-apps/current-work/multipage/network.html#dom-websocket-bufferedamount

var socket = new WebSocket('ws://game.example.com:12010/updates');
socket.onopen = function () {
    setInterval(function() {
        if (socket.bufferedAmount == 0){
          // Im' not busy anymore - set a flag or something like that
        }
    }, 50);
};

或者从服务器为每个客户端消息实现确认答案(尝试过,工作正常)