Commit Graph

1399 Commits

Author SHA1 Message Date
Joel Martin
1098b5bf01 Refactor FBU.bytes handling to simplify.
- raw encoding displays horizontal lines as they arrive for better
  feedback and less time hanging waiting for something.
2010-04-14 23:41:12 -05:00
Joel Martin
6321aff0cf stop routine stops mouseMove events too. 2010-04-14 23:40:29 -05:00
Joel Martin
9e5065ab83 Note WSS/SSL and C wsproxy in TODO. 2010-04-14 13:33:27 -05:00
Joel Martin
503c6c5be9 Add TODO. 2010-04-14 13:03:18 -05:00
Joel Martin
8cf206154c Working VNC client! Add mouse movement support.
- 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).
2010-04-14 12:44:47 -05:00
Joel Martin
48ebcdb110 Rename canvas.js routines to not have "rfb" prefix.
- Also, try making set fillStyle called less often.
2010-04-14 12:22:47 -05:00
Joel Martin
31af85b996 Don't clear canvas if debug mode 2010-04-14 12:13:59 -05:00
Joel Martin
28a5f29357 Re-order routines, no functional changes. 2010-04-14 12:10:23 -05:00
Joel Martin
fb99d81ccc Better hextile performance: index subrects instead of slicing/shifting.
- 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.
2010-04-14 12:03:01 -05:00
Joel Martin
410960bac8 Fix some framing bugs. Cleanup console logs. 2010-04-14 11:28:29 -05:00
Joel Martin
484a4696aa Refactor data processing. Ignore other server messages.
- 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.
2010-04-14 09:48:46 -05:00
Joel Martin
d064769ccf Initial mouse support. Down and Up only. 2010-04-13 17:39:01 -05:00
Joel Martin
9f4af5a722 Hextile working. Improve latency by coallescing sends.
- 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.
2010-04-13 12:59:11 -05:00
Joel Martin
2bcb2d5b15 Remove event handlers on disconnect. 2010-04-13 09:39:29 -05:00
Joel Martin
b7ec54870a Switch to much faster console.log and separate utils into util.js. 2010-04-13 09:28:53 -05:00
Joel Martin
0f62806499 Refactor processing to allow hextile processing.
With hextile you can't know how many bytes are pending. So restructure
so that all the received data so far is passed to the processsing
routines.
2010-04-12 13:21:44 -05:00
Joel Martin
f761808540 Process RRE in chunks instead of 1 at a time. 2010-04-12 11:46:43 -05:00
Joel Martin
cf67217cbf Change to RGB ordering. 2010-04-12 11:21:03 -05:00
Joel Martin
6dab56f914 Working RRE implementation. 2010-04-12 11:08:40 -05:00
Joel Martin
ed7e776db2 First pass at RRE encoding 2010-04-11 23:11:21 -05:00
Joel Martin
d628147bca WebWorkers example with two way messages.
- Prime number background worker that can be started, stopped and
  reset that calculates prime numbers and sends them back to the main
  page/thread.
2010-04-10 15:52:27 -04:00
Joel Martin
85b7a7d411 Handle undefined URL values correctly. 2010-04-10 15:52:08 -04:00
Joel Martin
4b835baeb9 Change depth to count down correctly. Trim long lines. 2010-04-10 12:00:35 -04:00
Joel Martin
48617e27bc Fix Copy-Rect encoding. 2010-04-06 22:44:12 -05:00
Joel Martin
f6515e3e35 Make web.py match README. Remove unused ws_echo.py. 2010-04-06 21:50:26 -05:00
Joel Martin
d63e146209 List for proxy reasons. 2010-04-06 21:37:35 -05:00
Joel Martin
5aeb98801b Change to markdown README.md.
- Semi-colon missing.
2010-04-06 21:34:56 -05:00
Joel Martin
0dddd6e47e Add README. 2010-04-06 21:06:46 -05:00
Joel Martin
0385e01171 Remove old test files. 2010-04-06 20:14:11 -05:00
Joel Martin
cc0410a39b Cleanup of files and vnc.js namespace.
- Trim unused code in base64.js
2010-04-06 16:44:45 -05:00
Joel Martin
d9cbdc7d85 Create getKeysym to lookup keysym from keyCode.
- Most of the keyboard is now functional.
2010-04-06 16:24:09 -05:00
Joel Martin
71085485e7 Fix canvas.html. 2010-04-06 13:58:06 -05:00
Joel Martin
532a9fd92e Better interface, support user provided VNC password.
- host, port and password input boxes (populated by URL values).
- clear canvas on disconnect.
- Dotted border around VNC area.
- mirror bits for VNC password.
2010-04-06 13:49:49 -05:00
Joel Martin
8580b98979 Got DES encryption of password working and colors corrected.
- 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.
2010-04-06 10:35:25 -05:00
Joel Martin
64ab5c4ded Working with Raw rectangles and capital letter keys. 2010-04-05 23:54:30 -05:00
Joel Martin
c8460b0310 Cleanup canvas and vnc code so they can be used together. 2010-04-04 16:08:55 -05:00
Joel Martin
f272267bf7 Add Canvas and event experiments.
Correctly handles all three mouse buttons and key presses on firefox
and Chrome.

Has a decent obj properties lister (dirObj).
2010-04-04 15:46:39 -05:00
Joel Martin
489d167643 Do base64 encode/decode of stream. Send SetEncoding and FB update request. 2010-04-02 19:17:46 -05:00
Joel Martin
a793fa460f Base64 Javascript encode/decode library.
From http://www.webtoolkit.info/
2010-04-02 19:17:01 -05:00
Joel Martin
9ec97d8635 Base64 encode/decode for client Javascript. 2010-04-02 19:16:25 -05:00
Joel Martin
65e27ddd4c First RFB protocol stub implementation.
- Requires wsproxy to proxy to the VNC server.
2010-04-01 11:36:22 -05:00
Joel Martin
f9d4566547 Add minimal python directory web server. 2010-03-31 19:44:48 -05:00
Joel Martin
8b945f2a94 Add RFB specs and move *.js files into include/ 2010-03-31 19:43:09 -05:00
Joel Martin
ce0e28c7d9 Some wsproxy simplifications. 2010-03-31 19:37:49 -05:00
Joel Martin
3292c4a995 Web Socket to TCP socket proxy and HTML interface.
- wsproxy.py: creates a web sockets to TCP socket proxy.
- interact.html: prints received Web Sockets data and has text box to
  send strings.
2010-03-31 18:21:03 -05:00
Joel Martin
feb4e5f801 Simplify ws_echo.py code. 2010-03-31 18:20:48 -05:00
Joel Martin
033df68db1 Simpler non-threaded ws_echo.py 2010-03-31 15:25:13 -05:00
Joel Martin
5505589604 Note enter into ws onclose. 2010-03-31 15:24:43 -05:00
Joel Martin
77c58e19ad Add server and client HTML echo test and mootools library 2010-02-17 14:54:38 -06:00