js php 简单聊天室

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>
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » js php 简单聊天室