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();
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程
2018-06-29 PHP生成唯一订单号
2018-06-29 PHP 的 uniqid 函数产生的 id 真的是唯一的么?