92 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Smarty
		
	
	
	
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Smarty
		
	
	
	
	
	
<!DOCTYPE html>
 | 
						|
<html lang="en">
 | 
						|
<head>
 | 
						|
<title>Chat Example</title>
 | 
						|
<script src="//code.jquery.com/jquery-2.1.3.min.js"></script>
 | 
						|
<script type="text/javascript">
 | 
						|
    $(function() {
 | 
						|
 | 
						|
    var conn;
 | 
						|
    var msg = $("#msg");
 | 
						|
    var log = $("#log");
 | 
						|
 | 
						|
    function appendLog(msg) {
 | 
						|
        var d = log[0]
 | 
						|
        var doScroll = d.scrollTop == d.scrollHeight - d.clientHeight;
 | 
						|
        msg.appendTo(log)
 | 
						|
        if (doScroll) {
 | 
						|
            d.scrollTop = d.scrollHeight - d.clientHeight;
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    $("#form").submit(function() {
 | 
						|
        if (!conn) {
 | 
						|
            return false;
 | 
						|
        }
 | 
						|
        if (!msg.val()) {
 | 
						|
            return false;
 | 
						|
        }
 | 
						|
        conn.send(msg.val());
 | 
						|
        msg.val("");
 | 
						|
        return false
 | 
						|
    });
 | 
						|
 | 
						|
    if (window["WebSocket"]) {
 | 
						|
        conn = new WebSocket("ws://{{.host}}/ws");
 | 
						|
        conn.onclose = function(evt) {
 | 
						|
            appendLog($("<div><b>Connection closed.</b></div>"))
 | 
						|
        }
 | 
						|
        conn.onmessage = function(evt) {
 | 
						|
            appendLog($("<div/>").text(evt.data))
 | 
						|
        }
 | 
						|
    } else {
 | 
						|
        appendLog($("<div><b>Your browser does not support WebSockets.</b></div>"))
 | 
						|
    }
 | 
						|
    });
 | 
						|
</script>
 | 
						|
<style type="text/css">
 | 
						|
html {
 | 
						|
    overflow: hidden;
 | 
						|
}
 | 
						|
 | 
						|
body {
 | 
						|
    overflow: hidden;
 | 
						|
    padding: 0;
 | 
						|
    margin: 0;
 | 
						|
    width: 100%;
 | 
						|
    height: 100%;
 | 
						|
    background: gray;
 | 
						|
}
 | 
						|
 | 
						|
#log {
 | 
						|
    background: white;
 | 
						|
    margin: 0;
 | 
						|
    padding: 0.5em 0.5em 0.5em 0.5em;
 | 
						|
    position: absolute;
 | 
						|
    top: 0.5em;
 | 
						|
    left: 0.5em;
 | 
						|
    right: 0.5em;
 | 
						|
    bottom: 3em;
 | 
						|
    overflow: auto;
 | 
						|
}
 | 
						|
 | 
						|
#form {
 | 
						|
    padding: 0 0.5em 0 0.5em;
 | 
						|
    margin: 0;
 | 
						|
    position: absolute;
 | 
						|
    bottom: 1em;
 | 
						|
    left: 0px;
 | 
						|
    width: 100%;
 | 
						|
    overflow: hidden;
 | 
						|
}
 | 
						|
 | 
						|
</style>
 | 
						|
</head>
 | 
						|
<body>
 | 
						|
<div id="log"></div>
 | 
						|
<form id="form">
 | 
						|
    <input type="submit" value="Send" />
 | 
						|
    <input type="text" id="msg" size="64"/>
 | 
						|
</form>
 | 
						|
</body>
 | 
						|
</html> |