面向过程:
$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();