1. 16 Jun, 2010 5 commits
  2. 15 Jun, 2010 5 commits
  3. 14 Jun, 2010 4 commits
  4. 13 Jun, 2010 2 commits
  5. 10 Jun, 2010 3 commits
  6. 09 Jun, 2010 3 commits
  7. 08 Jun, 2010 1 commit
  8. 07 Jun, 2010 4 commits
  9. 04 Jun, 2010 2 commits
  10. 03 Jun, 2010 3 commits
  11. 02 Jun, 2010 3 commits
  12. 01 Jun, 2010 2 commits
    • Joel Martin's avatar
      Add --record option to wsproxy.py. · 325d9eb7
      Joel Martin authored
      325d9eb7
    • Joel Martin's avatar
      Add colour map support (non-true-color). · d41c33e4
      Joel Martin authored
      In colourMap mode there are 256 colours in a colour palette sent from
      the server via the SetColourMapEntries message. This reduces the
      bandwidth by about 1/4. However, appearance can be somewhat less than
      ideal (pinks instead of gray, etc).
      
      It also increases client side rendering performance especially on
      firefox. Rendering a full 800x600 update takes about 950ms in
      firefox on my system compared to about 1400ms. Round-trip time for
      a full frame buffer update is even better on firefox (due to
      performance of the flash WebSocket emulator). Reduced from about
      1800ms to 1100ms on firefox (for 800x600 full update).
      d41c33e4
  13. 28 May, 2010 3 commits
    • Joel Martin's avatar
      Test non-base64 (straight UTF-8) encoding. · 507b473a
      Joel Martin authored
      Also add a wsencoding test client/server program to test send a set of
      values between client and server and vice-versa to test encodings.
      
      Not turned on by default.
      
      Add support for encode/decode of UTF-8 in the proxy. This leverages
      the browser for decoding the WebSocket stream directly instead of
      doing base64 decode in the browser itself.
      
      Unfortunately, in Chrome this has negligible impact (round-trip time
      is increased slightly likely due to extra python processing).
      
      In firefox, due to the use of the flash WebSocket emulator the
      performance is even worse. This is because it's really annoying to get
      the flash WebSocket emulator to properly decode a UTF-8 bytestream.
      The problem is that the readUTFBytes and readMultiByte methods of an
      ActionScript ByteArray don't treat 0x00 correctly. They return
      a string that ends at the first 0x00, but the index into the ByteArray
      has been advanced by however much you requested.
      
      This is very silly for two reasons: ActionScript (and Javascript)
      strings can contain 0x00 (they are not null terminated) and second,
      UTF-8 can legitimately contain 0x00 values. Since UTF-8 is not
      constant width there isn't a great way to determine if those methods
      in fact did encounter a 0x00 or they just read the number of bytes
      requested.
      
      Doing manual decoding using readUTFByte one character at a time slows
      things down quite a bit. And to top it all off, those methods don't
      support the alternate UTF-8 encoding for 0x00 ("\xc0\x80"). They also
      just treat that encoding as the end of string too.
      
      So to get around this, for now I'm encoding zero as 256 ("\xc4\x80")
      and then doing mod 256 in Javascript. Still doesn't result in much
      benefit in firefox.
      
      But, it's an interesting approach that could use some more exploration
      so I'm leaving in the code in both places.
      507b473a
    • Joel Martin's avatar
      Round-trip timing for first full FBU. · c3996e24
      Joel Martin authored
      c3996e24
    • Joel Martin's avatar
      d38406e6