ddae9dab97c8922cee4b0ae9c9ec373574d4ba5b
[contrib/qtwebsockets.git] / examples / sslechoserver / sslechoclient.html
1 <html>
2     <head>
3         <title>Websocket Echo Client</title>
4     </head>
5     <body>
6         <h1>Websocket Echo Client</h1>
7         <p>
8             <button onClick="initWebsocket();">Connect</button>
9             <button onClick="stopWebsocket();">Disconnect</button>
10             <button onClick="checkSocket();">State</button>
11         </p>
12         <p>
13             <textarea id="debugTextArea" style="width:400px;height:200px;"></textarea>
14         </p>
15         <p>
16             <input type="text" id="inputText" onkeydown="if(event.keyCode==13)sendMessage();"/>
17             <button onClick="sendMessage();">Send</button>
18         </p>
19
20         <script type="text/javascript">
21             var debugTextArea = document.getElementById("debugTextArea");
22             var wsUri = "wss://localhost:1234";
23             var websocket = null;
24
25             function debug(message) {
26                 debugTextArea.value += message + "\n";
27                 debugTextArea.scrollTop = debugTextArea.scrollHeight;
28             }
29
30             function sendMessage() {
31                 var msg = document.getElementById("inputText").value;
32                 if ( websocket != null )
33                 {
34                     document.getElementById("inputText").value = "";
35                     websocket.send( msg );
36                     console.log( "string sent :", '"'+msg+'"' );
37                 }
38             }
39
40             function initWebsocket() {
41                 try {
42                     if (typeof MozWebSocket == 'function')
43                         WebSocket = MozWebSocket;
44                     if ( websocket && websocket.readyState == 1 )
45                         websocket.close();
46                     websocket = new WebSocket( wsUri );
47                     websocket.onopen = function (evt) {
48                         debug("CONNECTED");
49                     };
50                     websocket.onclose = function (evt) {
51                         debug("DISCONNECTED");
52                     };
53                     websocket.onmessage = function (evt) {
54                         console.log( "Message received :", evt.data );
55                         debug( evt.data );
56                     };
57                     websocket.onerror = function (evt) {
58                         debug('ERROR: ' + evt.data);
59                     };
60                 } catch (exception) {
61                     debug('ERROR: ' + exception);
62                 }
63             }
64
65             function stopWebsocket() {
66                 if (websocket)
67                     websocket.close();
68             }
69
70             function checkSocket() {
71                 if (websocket != null) {
72                     var stateStr;
73                     switch (websocket.readyState) {
74                         case 0: {
75                             stateStr = "CONNECTING";
76                             break;
77                         }
78                         case 1: {
79                             stateStr = "OPEN";
80                             break;
81                         }
82                         case 2: {
83                             stateStr = "CLOSING";
84                             break;
85                         }
86                         case 3: {
87                             stateStr = "CLOSED";
88                             break;
89                         }
90                         default: {
91                             stateStr = "UNKNOW";
92                             break;
93                         }
94                     }
95                     debug("Websocket state = " + websocket.readyState + " ( " + stateStr + " )");
96                 } else {
97                     debug("Websocket is null");
98                 }
99             }
100         </script>
101     </body>
102 </html>