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.
This commit is contained in:
Jonathan Leibiusky @xetorthio
2017-08-28 10:36:38 -03:00
parent 305b15ff6c
commit 26724c51be

View File

@@ -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;