webssh

Web based ssh client https://github.com/huashengdun/webssh webssh.huashengdun.org/
git clone http://git.hanabi.in/repos/webssh.git
Log | Files | Refs | README | LICENSE

commit 4c3120e5adceced3c52e6ec14f5c0a56884fcbff
parent 24a619ae6b3bf6bd56c4ca6247686e34fed1e8bb
Author: Sheng <webmaster0115@gmail.com>
Date:   Thu, 23 Aug 2018 17:57:35 +0800

Reuse decoder

Diffstat:
Mwebssh/static/js/main.js | 49+++++++++++++++++++++++--------------------------
1 file changed, 23 insertions(+), 26 deletions(-)

diff --git a/webssh/static/js/main.js b/webssh/static/js/main.js @@ -96,23 +96,42 @@ jQuery(function($){ join = (ws_url[ws_url.length-1] === '/' ? '' : '/'), url = ws_url + join + 'ws?id=' + msg.id, sock = new window.WebSocket(url), - encoding = msg.encoding, + encoding, decoder, terminal = document.getElementById('#terminal'), term = new window.Terminal({ cursorBlink: true, }); console.log(url); - console.log('The deault encoding of your server is ' + encoding); + console.log('The deault encoding of your server is ' + msg.encoding); // wssh.sock = sock; // wssh.term = term; - var test_decoder; function resize_terminal (term) { var geometry = current_geometry(); term.on_resize(geometry.cols, geometry.rows); } + function set_encoding (new_encoding) { + // for console use + if (new_encoding === undefined) { + console.log('An encoding is required'); + return; + } + + try { + decoder = new window.TextDecoder(new_encoding); + encoding = new_encoding; + console.log('Set encoding to ' + encoding); + } catch(TypeError) { + console.log('Unknown encoding ' + new_encoding); + } + } + + wssh.set_encoding = set_encoding; + set_encoding(msg.encoding); + + wssh.window_geometry = function() { // for console use var geometry = current_geometry(); @@ -139,33 +158,12 @@ jQuery(function($){ } }; - wssh.set_encoding = function (new_encoding) { - // for console use - if (new_encoding === undefined) { - console.log('An encoding is required'); - return; - } - - try { - test_decoder = new window.TextDecoder(new_encoding); - } catch(TypeError) { - console.log('Unknown encoding ' + new_encoding); - } finally { - if (test_decoder !== undefined) { - test_decoder = undefined; - encoding = new_encoding; - console.log('Set encoding to ' + encoding); - } - } - }; - wssh.reset_encoding = function () { // for console use if (encoding === msg.encoding) { console.log('Already reset to ' + msg.encoding); } else { - encoding = msg.encoding; - console.log('Reset encoding to ' + msg.encoding); + set_encoding(msg.encoding); } }; @@ -216,7 +214,6 @@ jQuery(function($){ var reader = new window.FileReader(); reader.onloadend = function(){ - var decoder = new window.TextDecoder(encoding); var text = decoder.decode(reader.result); // console.log(text); if (term) {