• swoole websocket_server 聊天室--群聊


    centos7  php7.2 swoole4.3 nginx1.8 

    websocket_server 代码

    <?php
     
    $server = new SwooleWebSocketServer("0.0.0.0", 9502);
    
    $server->on('open', function (SwooleWebSocketServer $server, $request) {
        echo "server: handshake success with fd{$request->fd}
    ";
    });
    
    $server->on('message', function (SwooleWebSocketServer $server, $frame) {
        echo "receive from {$frame->fd}:{$frame->data},opcode:{$frame->opcode},fin:{$frame->finish}
    ";
        //$server->push($frame->fd, $frame->data);
        foreach ($server->connections as $k => $v) {
        	$server->push($v, "会员".$frame->fd.":".$frame->data);
        }
    
    });
    
    $server->on('close', function ($ser, $fd) {
        echo "client {$fd} closed
    ";
    });
    
    $server->start();
    
    
    ?>
    

      websocket.html

    <!DOCTYPE html>
    <html lang="en">
    <meta charset="UTF-8">
    <head>
        <style>
            *{
                margin:0px;
                padding:0px;
            }
        </style>
    </head>
     
    <body>
        <div style="margin-left:400px">
            <div style="border:1px solid; 600px;height: 500px;">
                <div id="msgArea" style="100%;height: 100%;text-align:start;resize: none;font-family: 微软雅黑;font-size: 20px;overflow-y: scroll"></div>
            </div>
            <div style="border:1px solid; 600px;height: 200px;">
                <div style="100%;height: 100%;">
                    <textarea id="userMsg" style="100%;height: 100%;text-align:start;resize: none;font-family: 微软雅黑;font-size: 20px;"></textarea>
                </div>
            </div>
            <div style="border:1px solid; 600px;height: 25px;">
                <button style="float: right;" onclick="sendMsg()">发送</button>
            </div>
        </div>
    </body>
     
    </html>
    <script src="http://bbc.weeton.cn/jquery-1.8.1.min.js"></script>
    <script>
        var ws;
        $(function(){
            link();
        })
     
        function link () {
            ws = new WebSocket("ws://106.13.8.114:9502");//连接服务器
            ws.onopen = function(event){
                console.log(event);
                alert('连接了');
            };
            ws.onmessage = function (event) {
                var msg = "<p>"+event.data+"</p>";
                $("#msgArea").append(msg);
            }
            ws.onclose = function(event){alert("已经与服务器断开连接
    当前连接状态:"+this.readyState);};
     
            ws.onerror = function(event){alert("WebSocket异常!");};
        }
     
        function sendMsg(){
            var msg = $("#userMsg").val();
            ws.send(msg);
        }
    </script>
    

      

  • 相关阅读:
    JSON使用——获取网页返回结果是Json的代码
    关于android:inputType属性的说明
    MySQL无视密码进入Server
    Linux下MySQL使用
    Linux下mv命令详解
    软件测试:测试用例
    软件测试:概述
    《零售业务中台架构设计探讨及实践》阅读笔记
    Python开发:OpenCV版本差异所引发的cv2.findContours()函数传参问题
    《小米网抢购系统开发实践》阅读笔记
  • 原文地址:https://www.cnblogs.com/heijinli/p/10542478.html
Copyright © 2020-2023  润新知