cydrickn / thruway-swoole-transport
Thruway 的 Swoole 传输层
v1.1.1
2023-11-06 11:27 UTC
Requires
- php: >=8.1
- ext-openswoole: *
Requires (Dev)
- mockery/mockery: ^1.6
- openswoole/ide-helper: ^22.0
- phpunit/phpunit: ^10.3
- voryx/thruway: ^0.6.1
README
OpenSwoole / Swoole Websocket 传输层用于 Thruway 路由器
先决条件
- PHP 版本 >= 8.1
- OpenSwoole
- voryx/thruway
安装
composer require cydrickn/thruway-swoole-transport
示例
工作进程外部启动
<?php require_once __DIR__ . '/vendor/autoload.php'; use Thruway\SwooleTransport\Server\WebsocketServer; use Thruway\SwooleTransport\SwooleLoop; use Thruway\SwooleTransport\SwooleTransportProvider; use Thruway\Peer\Router; $server = new WebsocketServer('127.0.0.1', 9999); $transportProvider = new SwooleTransportProvider($server); $router = new Router(new SwooleLoop()); $router->addTransportProvider($transportProvider); $server->addListener(WebsocketServer::EVENT_SERVER_START, function () use($transportProvider, $server) { \Thruway\Logging\Logger::info($transportProvider, 'Websocket listening on 0.0.0.0:9000'); $server->shutdown(); }); $router->start(false);
工作进程内部启动
<?php require_once __DIR__ . '/vendor/autoload.php'; use Thruway\SwooleTransport\Server\WebsocketServer; use Thruway\SwooleTransport\SwooleLoop; use Thruway\SwooleTransport\SwooleTransportProvider; use Thruway\Peer\Router; $server = new WebsocketServer('127.0.0.1', 9999); $server->addListener(WebsocketServer::EVENT_SERVER_START, function () { \Thruway\Logging\Logger::info(null, 'Websocket listening on 0.0.0.0:9000'); }); $server->addListener(WebsocketServer::EVENT_WORKER_START, function () use($server) { $transportProvider = new SwooleTransportProvider($server); $router = new Router(new SwooleLoop()); $router->addTransportProvider($transportProvider); $router->start(false); });