ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
#### 1、Event请求处理类 不同协议的服务,有着不同的server的Event处理类,这是与底层服务解耦出来,同时也是作为系统服务的开放系统部分,没有过度的封装,因为swoole扩展实现的服务,无非就是事件回调的处理。将Event抽象出来,这样使用者就有更大的权限,根据自己的业务做一些逻辑处理,一方面与swoolefy的框架也解耦分离开,不会影响swoolefy,但在这个Event类中实现很多的功能需要依赖swoolefy,特别是超全局|上下文定义的一些函数与属性。 * http服务(App/http) **HttpServer.php** 这个文件抽象Event的回调处理类,与底层服务解耦,在实际业务中,我们可能需要在回调函数中做一些处理,默认不做处理也即可使用,代码: ~~~ <?php namespace protocol\http; use Swoolefy\Core\Swfy; class HttpServer extends \Swoolefy\Http\HttpAppServer { /** * __construct 初始化 * @param array $config */ public function __construct(array $config=[]) { parent::__construct($config); } /** * onPipeMessage * @param object $server * @param int $src_worker_id * @param mixed $message * @return void */ public function onPipeMessage($server, $src_worker_id, $message) {} } ~~~ * websocket服务 **WebsocketEventServer.php** 这个文件是抽象Event的回调处理类,与底层的服务解耦,在实际业务中,我们可能需要在回调函数中做一些处理,默认不做处理也即可使用,代码: ~~~ <?php namespace protocol\websocket; use Swoolefy\Core\Swfy; class WebsocketEventServer extends \Swoolefy\Websocket\WebsocketEventServer { /** * __construct 初始化 * @param array $config */ public function __construct(array $config = []) { parent::__construct($config); } /** * onWorkerStart worker启动函数处理 * @param object $server * @param int $worker_id * @return void */ public function onWorkerStart($server, $worker_id) {} /** * onOpen * @param object $server * @param object $request * @return void */ public function onOpen($server, $request) {} /** * onFinish 任务完成 * @param object $server * @param int $task_id * @param mixed $data * @return void */ public function onFinish($server, $task_id, $data) {} /** * onClose 连接断开处理 * @param object $server * @param int $fd * @return void */ public function onClose($server, $fd) {} } ~~~ * rpc服务 **RpcServer.php** 这个文件是抽象Event的回调处理类,与底层的服务解耦,在实际业务中,我们可能需要在回调函数中做一些处理,默认不做处理也即可使用 ~~~ <?php namespace protocol\rpc; use Swoolefy\Core\Swfy; class RpcServer extends \Swoolefy\Rpc\RpcServer { /** * __construct 初始化 * @param array $config */ public function __construct(array $config=[]) { parent::__construct($config); } /** * onWorkerStart worker进程启动时回调处理 * @param object $server * @param int $worker_id * @return void */ public function onWorkerStart($server, $worker_id) {} /** * onConnet socket连接上时回调函数 * @param object $server * @param int $fd * @return void */ public function onConnet($server, $fd) {} /** * onFinish 异步任务完成后调用 * @param int $task_id * @param mixed $data * @return void */ public function onFinish($server, $task_id, $data) {} /** * onClose tcp连接关闭时回调函数 * @param object $server * @param int $fd * @return void */ public function onClose($server, $fd) {} } ~~~ * Udp服务 **UdpEventServer.php** 这个文件是抽象Event的回调处理类,与底层的服务解耦,在实际业务中,我们可能需要在回调函数中做一些处理,默认不做处理也即可使用 ~~~ <?php namespace protocol\udp; use Swoolefy\Core\Swfy; class UdpEventServer extends \Swoolefy\Udp\UdpEventServer { /** * __construct 初始化 * @param array $config */ public function __construct(array $config=[]) { parent::__construct($config); } public function onWorkerStart($server, $worker_id) {} public function onFinish($server, $task_id, $data) {} } ~~~ 不同的服务,使用者可以根据实际的业务逻辑处理事件回调