Join GitHub today
GitHub is home to over 20 million developers working together to host and review code, manage projects, and build software together.
As close as it gets -- fixed another bug with character corruption #8
A kind person have made a public demo of this library (previous version) at work, so you can look at it yourself: http://188.8.131.52/term-ws/shell-ws.php
htop, mc, adom, vim
There is a bug (possibly?) with white/grey background color in programs like nano/aptitude/man etc, which I believe is caused by code that performs actual drawing rather that by library itself. I suggest spending a little time to look at this port as it eliminates need for python on server and allows creation of quite simple terminal emulators using any server language, even PHP.
The main problem is a different architecture and different approach to console persistency.Our approach is to process console output even user do not look to the screen (don't forget it was created for virtual machine consoles). That allows to user see what happens on his machine's consoles in the past.
Putting that code to JS will simply kills that persistency.
Yes, I know that of course, but there are 2 things about that port that allow to resolve this issue:
By the way, I took a look at your implementation of the console (spending 300 rub :)) and I would like to note several things:
There is a deep misunderstanding about how that stuff works in our case. The main is - we render console not on 'web server', but much deeper inside of management toolstack. Secondary is we have some specific manipulation to console to provide some services for emergency operations (try to 'принудительно отключить' and watch the screen).
So we have no way to link JS and client consoles together.
We have nothing about using code (or ideas) for something else, but main purpose of that library is be used in our toolstack. We gladly accepts patches toward legacy support and bugfixes, but we will not change architectural stuff.
Feel free to fork and do 'jste' or something like that (this is github?).
Speed of emulation is strictly limited (by xenconsoled and our own tweaks). This is done intentionally - we have about ~40 domains (up to 100) per host, every one do have console. We can not allow console processing to 'snatch' time from network/disk io processing, so we putting limits toward consoles (lower priority, intentional delays and so on).
... about resize support. It's really deep question, because when you change terminal size, you need to set environment variables accordingly, but this is 'serial port emulation', not simple pseudoterminal interface (like ssh or webconsoles uses) - we can't change data inside client machines.
... About Cmd-V - kinda strange. Half of our guys work on macs, and paste operation works perfectly.