【JS】WebSocket实现简易聊天室

时间:2024-03-08 15:21:32
window.onload = function() { //选择器封装 let selector = name => document.querySelector(name); let createEl = dom => document.createElement(dom); //连接服务器先建立连接,需要客户端和服务端进行握手连接,连接成功后才能相互通讯 var ws = new webSocket("ws://127.o.0.1:8090"); //实例对象的 onopen属性,用于指定连接成功后的回调函数。 ws.onopen = function() { alert('连接成功') }; //连接发生错误的回调方法 ws.onerror = function() { alert('连接失败') }; //实例对象的 onmessage属性,用于指定收到服务器数据后的回调函数 ws.onmessage = function(data) { let msg = jSON.parse(data.data); //显示消息 appendLog(msg) }; //显示消息 function appendLog({ type, nickname, message }) { let [msglist, elLi, str] = [selector(".msglist"), createEl("li")]; if (type == "message'){//普通消息 str = `<div class="user_msg"> <span>${nickname}</span> <label>${message}</label> </div>` } else if (type == 'notification' || type == 'nick_update') { //系统通知消息 str = `<span class="user_notice">${message}</span>`; }; if (str) { elLi.innerHTML = str; msgList.appendChild(elLi); } }; //消息发送 selector("#send").onclick = function() { let inputMsg = selector(" #message"); if (ws.readyState == webSocket.OPEN) { ws.send(inputMsg.value) }; inputMsg.value = ''; //清空 }; //修改昵称 selector("#modify").onclick = function() { let inputMsg = selector(" #modifyName" '); if (ws.readystate == webSocket.OPEN) { //nick_${inputMsg.value}这里具体服务端让你写什么你们具体沟通 ws.send(`/nick_${inputMsg.value}`) }; I } }