spice-html5/spice_auto.html
Vladik Romanovsky 293d405e15 Use wss scheme when accessing with https protocol
Hi,

Currently the websocket connection is only being established using
the ws scheme.
Adding support for wss scheme when using https protocol to allow
ssl connection.
2014-08-01 10:34:30 -05:00

172 lines
5.8 KiB
HTML

<!--
Copyright (C) 2012 by Jeremy P. White <jwhite@codeweavers.com>
This file is part of spice-html5.
spice-html5 is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
spice-html5 is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with spice-html5. If not, see <http://www.gnu.org/licenses/>.
--------------------------------------------------
Spice Javascript client template.
Refer to main.js for more detailed information
--------------------------------------------------
-->
<!doctype html>
<html>
<head>
<title>Spice Javascript client</title>
<script src="spicearraybuffer.js"></script>
<script src="enums.js"></script>
<script src="atKeynames.js"></script>
<script src="utils.js"></script>
<script src="png.js"></script>
<script src="lz.js"></script>
<script src="quic.js"></script>
<script src="bitmap.js"></script>
<script src="spicedataview.js"></script>
<script src="spicetype.js"></script>
<script src="spicemsg.js"></script>
<script src="wire.js"></script>
<script src="spiceconn.js"></script>
<script src="display.js"></script>
<script src="main.js"></script>
<script src="inputs.js"></script>
<script src="simulatecursor.js"></script>
<script src="cursor.js"></script>
<script src="thirdparty/jsbn.js"></script>
<script src="thirdparty/rsa.js"></script>
<script src="thirdparty/prng4.js"></script>
<script src="thirdparty/rng.js"></script>
<script src="thirdparty/sha1.js"></script>
<script src="ticket.js"></script>
<link rel="stylesheet" type="text/css" href="spice.css" />
<script>
var host = null, port = null;
var sc;
function spice_set_cookie(name, value, days) {
var date, expires;
date = new Date();
date.setTime(date.getTime() + (days*24*60*60*1000));
expires = "; expires=" + date.toGMTString();
document.cookie = name + "=" + value + expires + "; path=/";
};
function spice_query_var(name, defvalue) {
var match = RegExp('[?&]' + name + '=([^&]*)')
.exec(window.location.search);
return match ?
decodeURIComponent(match[1].replace(/\+/g, ' '))
: defvalue;
}
function spice_error(e)
{
disconnect();
}
function connect()
{
var host, port, password, scheme = "ws://", uri;
// By default, use the host and port of server that served this file
host = spice_query_var('host', window.location.hostname);
// Note that using the web server port only makes sense
// if your web server has a reverse proxy to relay the WebSocket
// traffic to the correct destination port.
var default_port = window.location.port;
if (!default_port) {
if (window.location.protocol == 'http:') {
default_port = 80;
}
else if (window.location.protocol == 'https:') {
default_port = 443;
}
}
port = spice_query_var('port', default_port);
if (window.location.protocol == 'https:') {
scheme = "wss://";
}
// If a token variable is passed in, set the parameter in a cookie.
// This is used by nova-spiceproxy.
token = spice_query_var('token', null);
if (token) {
spice_set_cookie('token', token, 1)
}
password = spice_query_var('password', '');
path = spice_query_var('path', 'websockify');
if ((!host) || (!port)) {
console.log("must specify host and port in URL");
return;
}
if (sc) {
sc.stop();
}
uri = scheme + host + ":" + port;
try
{
sc = new SpiceMainConn({uri: uri, screen_id: "spice-screen", dump_id: "debug-div",
message_id: "message-div", password: password, onerror: spice_error });
}
catch (e)
{
alert(e.toString());
disconnect();
}
}
function disconnect()
{
console.log(">> disconnect");
if (sc) {
sc.stop();
}
console.log("<< disconnect");
}
connect();
</script>
</head>
<body>
<div id="login">
<span class="logo">SPICE</span>
</div>
<div id="spice-area">
<div id="spice-screen" class="spice-screen"></div>
</div>
<div id="message-div" class="spice-message"></div>
<div id="debug-div">
<!-- If DUMPXXX is turned on, dumped images will go here -->
</div>
</body>
</html>