From 26724c51be96d67758c326f0b28781762a558169 Mon Sep 17 00:00:00 2001 From: "Jonathan Leibiusky @xetorthio" Date: Mon, 28 Aug 2017 10:36:38 -0300 Subject: [PATCH] Add a small buffer on terminal input so we don't send every single keystroke as a single message on the socket, and optimize data transfer. --- www/assets/app.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/www/assets/app.js b/www/assets/app.js index 66f6f36..b2fde84 100644 --- a/www/assets/app.js +++ b/www/assets/app.js @@ -292,6 +292,10 @@ } $scope.removeInstance = function(name) { + if ($scope.idx[name]) { + var handler = $scope.idx[name].terminalBufferInterval; + clearInterval(handler); + } if ($scope.idx[name]) { delete $scope.idx[name]; $scope.instances = $scope.instances.filter(function(i) { @@ -365,8 +369,13 @@ $scope.resize(term.proposeGeometry()); }, 4); + instance.terminalBuffer = ''; + instance.terminalBufferInterval = setInterval(function() { + $scope.socket.emit('instance terminal in', instance.name, instance.terminalBuffer); + instance.terminalBuffer = ''; + }, 70); term.on('data', function(d) { - $scope.socket.emit('instance terminal in', instance.name, d); + instance.terminalBuffer += d; }); instance.term = term;