/** * 绑定事件 */ protected function bind() { self::$server->on('ManagerStart', [$this, 'onManagerStart']); self::$server->on('WorkerStart', [$this, 'onWorkerStart']); self::$server->on('WorkerStop', [$this, 'onWorkerStop']); self::$server->on('PipeMessage', [$this, 'onPipeMessage']); self::$server->on('Start', [$this, 'onStart']); self::$server->on('Finish', [$this, 'onFinish']); self::$server->on('Task', [$this, 'onTask']); self::$server->on('Packet', [$this, 'onPacket']); self::$server->on('Close', [$this, 'onClose']); self::$server->on('Connect', [$this, 'onConnect']); # 其它自定义回调函数 foreach (['Shutdown', 'Timer', 'ManagerStop'] as $type) { $fun = "on{$type}"; if (method_exists($this, $fun)) { self::$server->on($type, [$this, $fun]); } } # 自定义协议 if (self::$serverType === 0) { self::$server->on('Receive', [$this, 'onReceive']); } # HTTP if (self::$serverType === 1 || self::$serverType === 3) { self::$server->on('Request', [$this, 'onRequest']); } # WebSocket if (self::$serverType === 2 || self::$serverType === 3) { self::$server->on('Message', [$this, 'onMessage']); if (method_exists($this, 'onHandShake')) { self::$server->on('HandShake', [$this, 'onHandShake']); } else { self::$server->on('Open', [$this, 'onOpen']); } } }
<?php use Swoole\Server; $serv = new Server("127.0.0.1", 9501); $serv->on('receive', function (Server $serv, $fd, $from_id, $data) { echo "[#" . $serv->worker_id . "]\tClient[{$fd}]: {$data}\n"; if ($serv->send($fd, "hello\n") == false) { echo "error\n"; } }); $serv->start();