cydrickn/thruway-swoole-transport

Thruway 的 Swoole 传输层

v1.1.1 2023-11-06 11:27 UTC

This package is auto-updated.

Last update: 2024-09-06 13:17:26 UTC


README

OpenSwoole / Swoole Websocket 传输层用于 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);
});