swoole 面向过程改为面向对象写法例子
面向过程:
$server = new Swoole\WebSocket\Server("0.0.0.0", 8812); $server->on('open', function (Swoole\WebSocket\Server $server, $request) { echo "server: handshake success with fd{$request->fd}\n"; }); $server->on('message', function (Swoole\WebSocket\Server $server, $frame) { echo "receive from {$frame->fd}:{$frame->data},opcode:{$frame->opcode},fin:{$frame->finish}\n"; $server->push($frame->fd, "this is server"); }); $server->on('close', function ($ser, $fd) { echo "client {$fd} closed\n"; }); $server->start();
写法可更改为如下
面向对象:
class WS { public $server; public function __construct() { $this->server = new Swoole\WebSocket\Server("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}\n"; } /** * 监听websocket的消息事件 * @param $server * @param $frame */ public function onMessage($server,$frame) { echo "receive from {$frame->fd}:{$frame->data},opcode:{$frame->opcode},fin:{$frame->finish}\n"; $server->push($frame->fd, "this is server"); } /** * 监听websocket的关闭连接事件 * @param $server * @param $fd */ public function onClose($server,$fd) { echo "client {$fd} closed\n"; } } $obj = new WS(); new WebsocketTest();