<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>聊天室</title>
		<style type="text/css">
			/* 用通配符去除内外边距 */
			*{margin: 0;padding: 0;}
			body{
				background-color: #000000;
			}
			.msg-box{
				width: 800px;
				height: 600px;
				/* 外边距上下为0 左右适应 */
				margin: 0 auto;
				background-color: #FFC0CB;
			}
			.msg-title{
				width: 100%;
				height: 40px;
				text-align: center;
				line-height: 40px;
				background-color: #C3C9C9;
			}
			.msg-content{
				width: 71%;
				height: 500px;
				/* 内边距上下为0 左右2% */
				padding: 0 2%;
				float: left;
				/* 内容超出显示滚动条 */
				overflow-y: auto;
				background-color: antiquewhite;
			}
			.pe-list{
				width: 25%;
				height: 500px;
				float: left;
				background-color: bisque;
			}
			.pe-list > h3{
				text-align: center;
			}
			.msg-send{
				width: 100%;
				height: 60px;
				/* 清除浮动 */
				clear: left;
				background-color: cadetblue;
			}
			.msg-send > input{
				width: 73%;
				height: 50px;
			}
			.msg-send > button{
				width: 25%;
				height: 50px;
				color: #008000;
			}
		</style>
	</head>
	<body>
		<div class="msg-box">
			<div class="msg-title">
				相亲相爱一家人聊天室
			</div>
			<div class="msg-content" id="msgContent">
				
			</div>
			<div class="pe-list">
				<h3 id="uNumber">当前人数:50人</h3>
				<ul id="userList">
					
				</ul>
			</div>
			<div class="msg-send">
				<input type="text" id="message">
				<button type="button" onclick="sendMsg()">发送</button>
			</div>
		</div>
		
		<script type="text/javascript">
			//websocket技术 长连接的技术
			//websocket服务器地址
			//www.shijiayi.top/  地址
			//  /ws 项目名称
			//  /ChatServer 接口名称
			//  /彭于晏 用户名
			const ws = new WebSocket("wss://www.shijiayi.top/ws/ChatServer/彭于晏");
			//连接建立成功
			ws.onopen = function(){
				setMsg("与聊天服务器连接建立成功!");
			}
			//收到信息的回调
			ws.onmessage = function(event){
				//json字符串转对象
				var data = JSON.parse(event.data);
				if(data.code == 1){//上线
					setMsg("<span style='color:#00c28e'>"+data.msg+"</span>");
				}else if(data.code == 4){//下线
					setMsg("<span style='color:#ccc'>"+data.msg+"</span>");
				}else if(data.code == 2){//收到信息
					setMsg(data.sName +"说:"+ data.msg);
				}else if(data.code == 3){//获取到的在线人数
					var uNumber = document.getElementById("uNumber");
					uNumber.innerText = "当前人数:"+data.uNumber+"人"
				}
				
				
				//让滚动条在最下面
				msgContent.scrollTop = msgContent.scrollHeight;
				console.log(data);
			}
			//发送信息
			function sendMsg(){
				//找到输入框
				var message = document.getElementById("message");
				//获取输入内容
				var msg = message.value;
				//把输入内容发送出去
				ws.send(msg);
				//吧原始数据清楚
				message.value = "";
			}
			
			//发生错误的回调
			ws.onerror = function(e){}
			//找到div
			var msgContent = document.getElementById("msgContent");
			//发送信息的函数
			function setMsg(msg){
				//在原本的内容上面添加内容并添加br标签
				msgContent.innerHTML += msg + "<br/>";
			}
			
			//定时任务 
			// setInterval(function(){
			// 	ws.send("做回车键发送信息!!!");
			// },5000);
		</script>
	</body>
</html>

 

最后修改于 2022-04-13 15:52:52
如果觉得我的文章对你有用,请随意赞赏
扫一扫支付
上一篇