4 ms·
I was making a cloud product a number of years back and wrote a similar product for my then employer. For VNC and SSH it's pretty easy to do in Javascript and c
by candiodari 9y ago
I was making a cloud product a number of years back and wrote a similar product for my then employer. For VNC and SSH it's pretty easy to do in Javascript and can be quite reliable (much more so than telling customers how to connect using their own software - big difference in support). Even full-screen games were doable.
It provided something similar to phpvirtualbox + a screen where you'd (if properly authenticaed) just get access to your virtual machines just by going to a particular tab. Had a list of your VMs on the left, click on one, and a javascript starts up and gets a VNC javascript (started out with flash, swapped it out for a javascript one)
That said, this doesn't work as well as people here want it to. There is a significant cost to running in the browser (keyboard for instance, pressing CTRL-W will definitely generate a "wtf" moment a few times). But the speed and the fact that I couldn't do significant protocol development (VNC has something like 7 variations on protocol, integrating those into websocket is more than just encapsulating them if you want it to work well), means that I couldn't use the most efficient protocols. This meant that effectively there were resolution limits that weren't too high.
Lastly, javascript adds (a lot) of latency. It isn't much, and it sort of stays below 200 msec or so. But you'd be surprised how incredibly irritating it is to work with just 20msec extra latency. It's barely tolerable. For server admin work, sure (even then it's irritating). For constant development work, it's very irritating.
And full-screen games were doable because generally they would lower resolution and have other sources of lag. So they actually worked better than things like Eclipse and Visual Studio. Also they make you much less likely to hit browser keys. Especially old full screen games worked really well.
- NicoJuicy 9y agoDo you know how to make a client ssh application in HTML 5? Or what some resources are
- tim-- 9y ago- https://xtermjs.org/ https://xtermjs.org/ - https://github.com/billchurch/WebSSH2 https://github.com/billchurch/WebSSH2
- chatmasta 9y agoI've had a very positive experience with wetty[0] which uses the ChromeOS terminal emulator (hterm) on the client side, and communicates via websocket to a small node server that makes the SSH connection. I use it to provide a shell into an internal docker container used for managing some things. Everything "just works," even tmux key bindings. [0] https://github.com/krishnasrinivas/wetty https://github.com/krishnasrinivas/wetty
- numtel 9y agoShellinabox is available on ubuntu repos and it serves a short terminal using html5 that works great.
- rkeene2 9y agoNot SSH-based, but GoTTY works really well in my experience.
- riskable 9y agohttps://github.com/liftoff/GateOne https://github.com/liftoff/GateOne It can even display images in your browser if you do something like, 'cat someimage.jpeg' (I wrote it)
- andrewmd5 9y agoYou'd be really surprised how low you can get it, in one of my open source projects we have JPEG streaming and GPU accelerated capturing producing results as low as 50ms: https://github.com/Ulterius/server https://github.com/Ulterius/server In my current active project we have real-time streaming (< 10ms) working just fine in Chrome and Firefox: https://www.youtube.com/watch?v=YYRBRzevRDw https://www.youtube.com/watch?v=YYRBRzevRDw
- jorvi 9y agoOff topic: there is a doomguy emoji.. what the hell? Is that just a trick with a custom font using an unused Unicode pointer?
- desdiv 9y ago<img class="emoji" title=":feelsgood:" alt=":feelsgood:" src="https://assets-cdn.github.com/images/icons/emoji/feelsgood.png" width="20" height="20" align="absmiddle"> It's an image: https://assets-cdn.github.com/images/icons/emoji/feelsgood.png https://assets-cdn.github.com/images/icons/emoji/feelsgood.p...
- niutech 9y agoJSMPEG-VNC also claims only ~50ms delay: http://phoboslab.org/log/2015/07/play-gta-v-in-your-browser-sort-of http://phoboslab.org/log/2015/07/play-gta-v-in-your-browser-...
- Ajedi32 9y ago> pressing CTRL-W will definitely generate a "wtf" moment a few times FYI, a fix for that is coming soon: https://w3c.github.io/keyboard-lock/ https://w3c.github.io/keyboard-lock/
- LeifCarrotson 9y agoYou can hack around this by grabbing the "window.onbeforeunload" event to display the "Changes you have made to this page may not be saved: Leave/Stay" dialog when closing a tab. Reddit implements this when you're writing a comment, HN does not. The nice thing about a remote desktop, though, is that you won't actually lose changes.
- riskable 9y agoThe problem with this proposal is that it only works with full-screen applications. Want to have multiple tabs open to many different desktops? Forget it. Ctrl-w will screw you. Browsers already have an API for overriding built-in keyboard shortcuts: Event.preventDefault(). It's just that browser makers have chosen to ignore it for certain special keys like Ctrl-t and Ctrl-w.