js php 简单聊天室
本文使用 websocket + gatewayworker 搭的一个简单聊天室,随便写了点样式,大家不要介意哈,主要看流程就好
html代码,
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <style> .content{ width: 500px; height: 500px; border: 1px solid red; } .left{ max-width: 200px; } .right{ float: right; max-width: 200px; } </style> </head> <body> <div class="box"> <div class="content"> </div> <input type="text" id="content"> <button class="send">发送</button> </div> <script src="jquery-3.6.0.min.js"></script> <script> let ws = new WebSocket("ws://127.0.0.1:8282"); let user_id = getQueryVariable("user_id"); let to = getQueryVariable("to"); ws.onopen = function(e){ console.log("连接成功"); } ws.onmessage = function(e){ let data = JSON.parse(e.data); switch (data.cmd){ case "init": send("bindUid",{client_id: data.client_id,user_id: user_id});break; case "message": $(".content").append("<div class="left ">"+ data.data.content +"</div><div style="clear:both;"></div>"); break; } console.log("收到信息",data); } ws.onerror = function(e){ cnsole.log("连接失败"); } $(".send").click(function(){ if(to == ""){ alert("缺少发送人"); } let content = $("#content").val() $(".content").append("<div class="right">"+ content +"</div><div style="clear:both;"></div>"); send("message",{to:to,content:content,user_id:user_id}); }) const send = (cmd,data) => { ws.send(JSON.stringify({ cmd: cmd, data: data })) } function getQueryVariable(variable) { var query = window.location.search.substring(1); var vars = query.split("&"); for (var i=0;i<vars.length;i++) { var pair = vars[i].split("="); if(pair[0] == variable){return pair[1];} } return(false); } </script> </body> </html>