代码
提交代码
<!DOCTYPE html> <html> <head> <title></title> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <style> p { text-align: left; padding-left: 20px; } </style> </head> <body> <div style="width: 700px;height: 500px;margin: 30px auto;text-align: center"> <h1>聊天室实战</h1> <div style="width: 700px;border: 1px solid gray;height: 300px;"> <div style="width: 200px;height: 300px;float: left;text-align: left;"> <p><span>当前在线:</span><span id="user_num">0</span></p> <div id="user_list" style="overflow: auto;"> </div> </div> <div id="msg_list" style="width: 598px;border: 1px solid gray; height: 300px;overflow: scroll;float: left;"> </div> </div> <br> <textarea id="msg_box" rows="6" cols="50" onkeydown="confirm(event)"></textarea><br> <input type="button" value="发送" onclick="send()"> </div> </body> </html> <script type="text/javascript"> var uname = window.prompt('请输入用户名', 'user' + uuid(8, 16)); var ws = new WebSocket("ws://127.0.0.1:8081"); ws.onopen = function () { var data = "系统消息:连接成功"; listMsg(data); }; ws.onmessage = function (e) { var msg = JSON.parse(e.data); var data = msg.content; listMsg(data); }; ws.onerror = function () { var data = "系统消息 : 出错了,请退出重试."; listMsg(data); }; function confirm(event) { var key_num = event.keyCode; if (13 == key_num) { send(); } else { return false; } } /** * 发送并清空消息输入框内的消息 */ function send() { var msg_box = document.getElementById("msg_box"); var content = msg_box.value; var reg = new RegExp("\r\n", "g"); content = content.replace(reg, ""); var msg = {'content': content.trim(), 'type': 'user'}; sendMsg(msg); msg_box.value = ''; } /** * 将消息内容添加到输出框中,并将滚动条滚动到最下方 */ function listMsg(data) { var msg_list = document.getElementById("msg_list"); var msg = document.createElement("p"); msg.innerHTML = data; msg_list.appendChild(msg); msg_list.scrollTop = msg_list.scrollHeight; } /** * 将数据转为json并发送 * @param msg */ function sendMsg(msg) { var data = JSON.stringify(msg); ws.send(data); } </script>
运行结果