Added "heartbeat" for update throttling.

This commit is contained in:
Michael Jumper
2010-09-08 01:43:34 -07:00
parent af0b4d933d
commit 23ddb964b9
7 changed files with 96 additions and 7 deletions

View File

@@ -61,6 +61,15 @@
<servlet-name>Clipboard</servlet-name>
<url-pattern>/clipboard</url-pattern>
</servlet-mapping>
<servlet>
<description>Client "ready-to-receive" heartbeat</description>
<servlet-name>Ready</servlet-name>
<servlet-class>net.sourceforge.guacamole.net.input.Ready</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Ready</servlet-name>
<url-pattern>/ready</url-pattern>
</servlet-mapping>
<servlet>
<description>Key input servlet.</description>
<servlet-name>Key</servlet-name>

View File

@@ -540,7 +540,27 @@ function VNCClient(display) {
handler(parameters);
}
function sendReady() {
// Start heartbeat signal
var heartbeat = new XMLHttpRequest();
heartbeat.open("GET", "ready");
heartbeat.onreadystatechange = function() {
if (heartbeat != null && heartbeat.readyState >= 2) {
heartbeat = null;
setTimeout(sendReady, 50);
}
};
heartbeat.send();
}
this.connect = function() {
@@ -555,6 +575,7 @@ function VNCClient(display) {
var message = new GuacamoleMessage(connect_xmlhttprequest.responseXML);
if (!message.hasErrors()) {
setState(STATE_WAITING);
sendReady();
handleResponse(makeRequest()); // Start stream if connection successful
}
else