| <html> |
| <head> |
| <title>WebSocket Chat Client</title> |
| </head> |
| <body> |
| <h1>WebSocket Chat Client</h1> |
| <p> |
| Host: <input id="webSocketHost" type="text" value="localhost:1234"/> |
| </p> |
| <p> |
| <button onClick="initWebSocket();">Connect</button> |
| <button id="disconnectButton" onClick="stopWebSocket();" disabled>Disconnect</button> |
| <button onClick="checkSocket();">State</button> |
| </p> |
| <p> |
| <textarea id="debugTextArea" style="width:400px;height:200px;" readonly></textarea> |
| </p> |
| <p> |
| <input type="text" id="inputNick" value="nickname" /> |
| <input type="text" id="inputText" onkeydown="if(event.keyCode==13)sendMessage();"/> |
| <button id="sendButton" onClick="sendMessage();" disabled>Send</button> |
| </p> |
| |
| <script type="text/javascript"> |
| var debugTextArea = document.getElementById("debugTextArea"); |
| function debug(message) { |
| debugTextArea.value += message + "\n"; |
| debugTextArea.scrollTop = debugTextArea.scrollHeight; |
| } |
| |
| function sendMessage() { |
| var nickname = document.getElementById("inputNick").value; |
| var msg = document.getElementById("inputText").value; |
| var strToSend = nickname + ": " + msg; |
| if ( websocket != null ) |
| { |
| document.getElementById("inputText").value = ""; |
| websocket.send( strToSend ); |
| console.log( "string sent :", '"'+strToSend+'"' ); |
| debug(strToSend); |
| } |
| } |
| |
| var websocket = null; |
| |
| function initWebSocket() { |
| try { |
| if (typeof MozWebSocket == 'function') |
| WebSocket = MozWebSocket; |
| if ( websocket && websocket.readyState == 1 ) |
| websocket.close(); |
| var wsUri = "ws://" + document.getElementById("webSocketHost").value; |
| websocket = new WebSocket( wsUri ); |
| websocket.onopen = function (evt) { |
| debug("CONNECTED"); |
| document.getElementById("disconnectButton").disabled = false; |
| document.getElementById("sendButton").disabled = false; |
| }; |
| websocket.onclose = function (evt) { |
| debug("DISCONNECTED"); |
| document.getElementById("disconnectButton").disabled = true; |
| document.getElementById("sendButton").disabled = true; |
| }; |
| websocket.onmessage = function (evt) { |
| console.log( "Message received :", evt.data ); |
| debug( evt.data ); |
| }; |
| websocket.onerror = function (evt) { |
| debug('ERROR: ' + evt.data); |
| }; |
| } catch (exception) { |
| debug('ERROR: ' + exception); |
| } |
| } |
| |
| function stopWebSocket() { |
| if (websocket) |
| websocket.close(); |
| } |
| |
| function checkSocket() { |
| if (websocket != null) { |
| var stateStr; |
| switch (websocket.readyState) { |
| case 0: { |
| stateStr = "CONNECTING"; |
| break; |
| } |
| case 1: { |
| stateStr = "OPEN"; |
| break; |
| } |
| case 2: { |
| stateStr = "CLOSING"; |
| break; |
| } |
| case 3: { |
| stateStr = "CLOSED"; |
| break; |
| } |
| default: { |
| stateStr = "UNKNOW"; |
| break; |
| } |
| } |
| debug("WebSocket state = " + websocket.readyState + " ( " + stateStr + " )"); |
| } else { |
| debug("WebSocket is null"); |
| } |
| } |
| </script> |
| </body> |
| </html> |