Now, given my interest on async servers and my recent interest on their implementation on python along with the rustiness of my perl I decided to try a reimplementation on async python as a way to introduce me to the gevent framework.
- Some browsers are remarkable faster than others doing this, chrome 15 has a 800×600 draw time of 0-1 msec while Firefox 7 has about 5-13 msec draw time
- It is perfectly usable unless you want to play videos or something like that
Available in github, comments and patches are welcome! still in development though.
How did I do it
- I forked gevent-websocket on bitbucket and implemented the new hybi WS protocol on it, it is actually the only thing that current firefox and chrome speak so there was no option there, I also introduced some other small changes
- I copied all the rfb(Remote Frame Buffer, VNC protocol) implementation from python-vnc-viewer and then removed the twisted dependency and adapted everything to work on gevent.
- Finally thanks to gevent I created the “main” of my app, really just a gevent app
Gevent and greenlet have some kind of incompatibility on python 2.7, requirements.txt had to include this version
git clone git://github.com/arkaitzj/wsvnc.git &&
cd wsvnc &&
virtualenv --no-site-packages sandbox &&
sandbox/bin/pip install -r requirements.txt &&