zoukankan      html  css  js  c++  java
  • 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>
    

      

  • 相关阅读:
    Linux常用命令-centos
    USACO 2006 Open, Problem. The Country Fair 动态规划
    USACO 2007 March Contest, Silver Problem 1. Cow Traffic
    USACO 2007 December Contest, Silver Problem 2. Building Roads Kruskal最小生成树算法
    USACO 2015 February Contest, Silver Problem 3. Superbull Prim最小生成树算法
    LG-P2804 神秘数字/LG-P1196 火柴排队 归并排序, 逆序对
    数据结构 并查集
    浴谷国庆集训 对拍
    1999 NOIP 回文数
    2010 NOIP 普及组 第3题 导弹拦截
  • 原文地址:https://www.cnblogs.com/heijinli/p/10542478.html
Copyright © 2011-2022 走看看