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