+ }
+ // limit to 50fps
+ var redraw = function () {
+ if (redraw_wait) {
+ redraw_again = true;
+ } else {
+ redraw_now()
+ redraw_wait = true;
+ redraw_again = false;
+ setTimeout(function () {
+ redraw_wait = false;
+ if(redraw_again) {
+ redraw_again = false;
+ redraw();
+ }
+ }, 20);
+ }
+ }
+ var update = function (data) {
+ if (term) {
+ term.update(data);
+ redraw();
+ }
+ };
+
+ socket.on('data', function (data) {
+ update(data);
+ });
+ socket.on('init', function (v) {
+ term = terminal.new(v.width, v.height);
+ term.x = v.x;
+ term.y = v.y;
+ term.a = v.a;
+ term.text = v.text;
+ term.attributes = v.attributes;
+ redraw();