From 8b502df2a1f8b11afac1e0f0f6a70b80adc6767f Mon Sep 17 00:00:00 2001 From: Joel Martin Date: Sun, 23 Jan 2011 19:17:59 -0600 Subject: [PATCH] Tolerate some bufferedAmount. Only delay sending data if bufferedAmount is greater than 1000. This seems to match the intention of the spec better. bufferedAmount does not mean that we can't send, it's just an indication that the network is becoming saturated. But Opera 11 native WebSockets seems to have a bug that bufferedAmount isn't set back to zero correctly so we'll be a bit more tolerant. --- include/websock.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/include/websock.js b/include/websock.js index 825e453d..e02411f6 100644 --- a/include/websock.js +++ b/include/websock.js @@ -166,7 +166,10 @@ function decode_message(data) { // function flush() { - if (websocket.bufferedAmount === 0) { + if (websocket.bufferedAmount !== 0) { + Util.Debug("bufferedAmount: " + websocket.bufferedAmount); + } + if (websocket.bufferedAmount < 1000) { //Util.Debug("arr: " + arr); //Util.Debug("sQ: " + sQ); if (sQ) { @@ -175,7 +178,8 @@ function flush() { } return true; } else { - Util.Debug("Delaying send"); + Util.Info("Delaying send, bufferedAmount: " + + websocket.bufferedAmount); return false; } }