对workerman
的原理剖析,是对其基本功能的重新实现,并简化了相关逻辑。项目代码仅供学习交流。
-
composer离线安装
{ "require": { "icy8/socketman": "dev-master" }, "repositories": [ { "type": "path", "url": "vendor/icy8/socketman" } ] }
composer install
-
从workerman中砍掉的功能比较多,比如进程、端口复用、定时器、SSL等等。
-
目前没有对http协议做过多的封装
-
启动一个websocket服务
<?php use icy8\SocketMan\Server; include "vendor/autoload.php"; $server = new Server('websocket://0.0.0.0:996'); // 监听 $server->onConnect = function ($connection) { // 这部分事件只能在onConnect中监听 // 暂时没有对这部分功能进行优化 $connection->onWebsocketConnect = function ($connection) {}; $connection->onWebsocketPing = function ($connection) {}; $connection->onWebsocketPong = function ($connection) {}; }; // 这个事件会被提取到connection中 $server->onMessage = function ($connection, $data) { var_dump($data); }; $server->run();
-
启动一个http服务
<?php use icy8\SocketMan\Server; include "vendor/autoload.php"; $server = new Server('http://0.0.0.0:996'); // 监听 $server->onConnect = function ($connection) {}; // 这个事件会被提取到connection中 $server->onMessage = function ($connection, $request) { var_dump($request->header); }; $server->run();