4
<title>WebSockets Echo Test</title>
5
<script src="include/util.js"></script>
6
<script src="include/webutil.js"></script>
7
<script src="include/base64.js"></script>
8
<script src="include/websock.js"></script>
9
<!-- Uncomment to activate firebug lite -->
11
<script type='text/javascript'
12
src='http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js'></script>
20
Host: <input id='host' style='width:100'>
21
Port: <input id='port' style='width:50'>
22
Encrypt: <input id='encrypt' type='checkbox'>
23
<input id='connectButton' type='button' value='Start' style='width:100px'
24
onclick="connect();">
29
<textarea id="messages" style="font-size: 9;" cols=80 rows=25></textarea>
34
var ws, host = null, port = null,
35
msg_cnt = 0, send_cnt = 1, echoDelay = 500,
38
function message(str) {
40
cell = $D('messages');
41
cell.innerHTML += msg_cnt + ": " + str + "\n";
42
cell.scrollTop = cell.scrollHeight;
46
Array.prototype.pushStr = function (str) {
48
for (var i=0; i < n; i++) {
49
this.push(str.charCodeAt(i));
54
var str = "Message #" + send_cnt;
56
message("Sent message: '" + str + "'");
60
function update_stats() {
61
$D('sent').innerHTML = sent;
62
$D('received').innerHTML = received;
63
$D('errors').innerHTML = errors;
67
var host = $D('host').value,
68
port = $D('port').value,
69
scheme = "ws://", uri;
71
console.log(">> connect");
72
if ((!host) || (!port)) {
73
console.log("must set host and port");
81
if ($D('encrypt').checked) {
84
uri = scheme + host + ":" + port;
85
message("connecting to " + uri);
90
ws.on('message', function(e) {
91
//console.log(">> WebSockets.onmessage");
92
var str = ws.rQshiftStr();
94
message("Received message '" + str + "'");
95
//console.log("<< WebSockets.onmessage");
97
ws.on('open', function(e) {
98
console.log(">> WebSockets.onopen");
99
echo_ref = setInterval(send_msg, echoDelay);
100
console.log("<< WebSockets.onopen");
102
ws.on('close', function(e) {
103
console.log(">> WebSockets.onclose");
105
clearInterval(echo_ref);
108
console.log("<< WebSockets.onclose");
110
ws.on('error', function(e) {
111
console.log(">> WebSockets.onerror");
113
clearInterval(echo_ref);
116
console.log("<< WebSockets.onerror");
119
$D('connectButton').value = "Stop";
120
$D('connectButton').onclick = disconnect;
121
console.log("<< connect");
124
function disconnect() {
125
console.log(">> disconnect");
131
clearInterval(echo_ref);
134
$D('connectButton').value = "Start";
135
$D('connectButton').onclick = connect;
136
console.log("<< disconnect");
140
window.onload = function() {
141
console.log("onload");
142
var url = document.location.href;
143
$D('host').value = (url.match(/host=([^&#]*)/) || ['',window.location.hostname])[1];
144
$D('port').value = (url.match(/port=([^&#]*)/) || ['',window.location.port])[1];