Professional Documents
Culture Documents
Websocket
Websocket
<head>
<title>WebSocket</title>
<style type="text/css">
html,
body {
font: normal 0.9em arial, helvetica;
}
#log {
width: 600px;
height: 300px;
border: 1px solid #7F9DB9;
overflow: auto;
}
#msg {
width: 400px;
}
</style>
<script type="text/javascript">
var socket;
function init() {
var host = "ws://localhost:9000";
try {
socket = new WebSocket(host);
log('WebSocket - status ' + socket.readyState);
socket.onopen = function (msg) {
log("Welcome - status " + this.readyState);
};
socket.onmessage = function (msg) {
var data = JSON.parse(msg.data)
var username = data.username;
var message = data.message;
log(`-${username}: ${message}`);
};
socket.onclose = function (msg) {
log("Disconnected - status " + this.readyState);
};
}
catch (ex) {
log(ex);
}
$("msg").focus();
}
function send() {
var username, message;
username = $("username").value;
message = $("msg").value;
if (!message) {
alert("Message can not be empty");
return;
}
if (!username) {
alert("Username can not be empty");
return;
}
$("msg").value = "";
$("msg").focus();
try {
var payload = { username, message }
socket.send(JSON.stringify(payload));
log(`${username}: ${message}`);
} catch (ex) {
log(ex);
}
}
function quit() {
if (socket != null) {
log("Goodbye!");
socket.close();
socket = null;
}
}
function reconnect() {
quit();
init();
}
// Utilities
function $(id) { return document.getElementById(id); }
function log(msg) { $("log").innerHTML += "<br>" + msg; }
</script>
</head>
<body onload="init()">
<h3>WebSocket v2.00</h3>
<div id="log"></div>
<label>
<p>Apodo: <input id="username" type="text" /></p>
</label>
<br>
<input id="msg" type="textbox" />
<button onclick="send()">Send</button>
<button onclick="quit()">Quit</button>
<button onclick="reconnect()">Reconnect</button>
</body>
</html>