HTML and CSS Reference
Enhancing the Application
To enhance this application, you have a few obvious options. For one, you can try
removing the WebSocket to TCP proxy and connect directly to an RFB server that
contains integrated WebSocket support. You can also implement other RFB features;
RFB supports many other pixel encoding mechanisms not included in this example.
There are negotiable authentication mechanisms, as well, that you can add support for.
Furthermore, RFB servers can be configured to support different color depths. You could
add these modes to the RFB client protocol library.
With the power of VNC/RFB over WebSocket technology you should be able to
design a web application that connects to multiple desktops on the same web page as a
way to work with them. Imagine that you have three panels on a web page and each one
of them is connected to a remote system through VNC over WebSocket where you can
perform an action on one that is controlling a Windows system, switch to another panel
that controls a Linux system, then finally focus on the third panel that controls a Mac
OS. While these three remote systems are running for you in parallel, you can perform
additional tasks in your browser or on your desktop.
The mechanism you learned in this chapter is only the beginning of what you could
develop with WebSocket in terms of simultaneously connecting remotely to several
different machines from a single web page without installing anything on your system.
In this chapter, we discussed some key points from the history of network computing,
specifically virtual network computing. We examined the widely implemented Remote
Framebuffer (RFB) protocol, stepped through how to layer RFB and WebSocket to enable
you to control the GUI of another computer remotely, and highlighted key techniques
for using RFB with WebSocket. We also looked at some of the educational and technical
benefits of VNC over WebSocket, as well as a comparison of binary-oriented and
text-oriented protocols. We also explored potentially exciting uses and applications you can
build to enable users to perform tasks they couldn't before, like viewing and controlling
multiple desktops from the same web page.
Now that we've stepped through a few real-life demos and use cases of WebSocket,
we'll discuss WebSocket security and how to secure WebSocket applications in the