zoukankan      html  css  js  c++  java
  • swoole 面向过程改为面向对象写法例子

    面向过程:

    $server = new SwooleWebSocketServer("0.0.0.0", 8812);
    
    $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, "this is server");
    });
    
    $server->on('close', function ($ser, $fd) {
        echo "client {$fd} closed
    ";
    });
    
    $server->start();

    写法可更改为如下

    面向对象:

    class WS {
        public $server;
        public function __construct() {
            $this->server = new SwooleWebSocketServer("0.0.0.0", 8812);
            $this->server->on('open', [$this, 'onOpen']);
            $this->server->on('message', [$this, 'onMessage']);
            $this->server->on('close', [$this, 'onClose']);
    
            $this->server->start();
        }
    
        /**
         * 监听websocket的打开连接事件
         * @param $server
         * @param $request
         */
        public function onOpen($server,$request)
        {
            echo "server: handshake success with fd{$request->fd}
    ";
        }
    
        /**
         * 监听websocket的消息事件
         * @param $server
         * @param $frame
         */
        public function onMessage($server,$frame)
        {
            echo "receive from {$frame->fd}:{$frame->data},opcode:{$frame->opcode},fin:{$frame->finish}
    ";
            $server->push($frame->fd, "this is server");
        }
    
        /**
         * 监听websocket的关闭连接事件
         * @param $server
         * @param $fd
         */
        public function onClose($server,$fd)
        {
            echo "client {$fd} closed
    ";
        }
    }
    $obj = new WS();
    new WebsocketTest();
  • 相关阅读:
    线性最大子数组的求法(二)
    高难度智力题
    职业规划
    良好的学习习惯
    毕业生面试绝招
    编写Java程序最容易犯的21种错误
    spring02
    spring_01
    用soapUI生成客户端代码
    idea创建git分支
  • 原文地址:https://www.cnblogs.com/-mrl/p/13208153.html
Copyright © 2011-2022 走看看