From e67a8c4908990cf97181ed55fe4b162f13005ad0 Mon Sep 17 00:00:00 2001 From: Daniel Date: Tue, 24 Mar 2015 12:17:22 +0200 Subject: [PATCH] added mechanism to ensure data send in case that websocket.bufferedAmount > api.maxBufferedAmount --- include/websock.js | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/include/websock.js b/include/websock.js index 0e4718a..02014a4 100644 --- a/include/websock.js +++ b/include/websock.js @@ -65,7 +65,8 @@ var api = {}, // Public API 'error' : function() {} }, - test_mode = false; + test_mode = false, + sendDataFromQueueTimer = -1; // @@ -209,9 +210,20 @@ function flush() { // overridable for testing function send(arr) { + var dataSentOk; //Util.Debug(">> send_array: " + arr); sQ = sQ.concat(arr); - return flush(); + dataSentOk = flush(); + if (dataSentOk === false && sendDataFromQueueTimer === -1) { + sendDataFromQueueTimer = setInterval(function () { + dataSentOk = flush(); + if (dataSentOk === true) { + clearInterval(sendDataFromQueueTimer); + sendDataFromQueueTimer = -1; + } + }, 100); + } + return dataSentOk; } function send_string(str) {