Opera works! Fix message event drops/reorders.

Instead of relying on FABridge AS -> JS event delivery, we just use
the events to notify JS of pending data. The message handler then
calls the AS readSocketData routine which sends back an array of
the pending WebSocket frames.

There is still a minor bug somewhere that happens after the first
connect where the web-socket-js throws an "INVALID_STATE_ERR: Web
Socket connection has not been established". But, Opera is now usable
and we should be able to drop the packet sequence numbering and
re-ordering code.

Another minor issue to better support Opera is to move JS script
includes to the <head> of the page instead of after the body.
This commit is contained in:
Joel Martin
2010-07-01 09:53:38 -05:00
parent 1eba7b4279
commit a93c955538
6 changed files with 48 additions and 46 deletions

View File

@@ -90,9 +90,9 @@ I only currently test under Linux. Here are the current results:
full-color images are slow.
* Arora 0.50: Works. Broken putImageData so large full-color images
are slow.
* Opera 10.60: Works. Uses flash WebSockets emulator. Large full-color
images are slow.
* Opera 10.10: Unusable: drops web-socket-js events.
* Opera 10.60: Broken: throws "WRONG_ARGUMENTS_ERR" on connect.
* Konqueror 4.2.2: Broken: flash WebSockets emulator never connects.
@@ -105,11 +105,13 @@ structure and style.
At a minimum you must include the `vnc.js` and `default_controls.js`
scripts and call their load() functions. For example:
<head>
<script src='include/vnc.js'></script>
<script src="include/default_controls.js"></script>
</head>
<body>
<div id='vnc'>Loading</div>
</body>
<script src='include/vnc.js'></script>
<script src="include/default_controls.js"></script>
<script>
window.onload = function () {
DefaultControls.load('vnc');