- Mouse movements are accumulated and sent about 5 times a second.
- Normal polling happens at about 1.5 seconds intervals.
This commit represents a very functional VNC client under Google
Chrome.
Remaining work:
- Cut and paste support.
- Framing bugs when using RRE encoding.
- Better status and error feedback.
- Get working in firefox using flash web-socket-js:
http://github.com/gimite/web-socket-js
- Version without mootools (but test cross-browser).
- Many times better performance. Before this, browser was spending all
it's time garbage collecting or doing something. Now the bottleneck
is in set fillStyle and fillRect which is probably where it should
be.
- Refactor to pull off all the data received into RFB.d array and then
process it. This allows a bit more flexibility in handling
data that isn't sent in frame boundary packets.
- Properly ignore these server messages: SetColourMapEntries, Bell,
ServerCutText.
- Hextile has an undocumented weirdness where RAW frames are often
followed by a 0 byte that should be ignored.
- Coallesce client messages that are one after another. Without
this the server seems to often ignore frames that are send right
after another frame has been sent. This fixes a reconnect issue
where setEncodings seems to be ignored. Also results in a huge
performance increase after key strokes (by adding a update request
to the key event message) because the server always sends an update
instead of sometimes waiting for the next poll to be sent.
- host, port and password input boxes (populated by URL values).
- clear canvas on disconnect.
- Dotted border around VNC area.
- mirror bits for VNC password.
- DES encryption for VNC bit mirrors every bytes of the password. This
commit has a hard-coded mirrored password. Need to ask user and bit
mirror it.
- With image data across the wire it's Blue,Green,Red, so twiddle
things around a bit.