vedorx/websocketmiddleware

React 的 WebSocket 中间件

2.0.0 2020-08-17 16:34 UTC

This package is auto-updated.

Last update: 2024-09-17 02:27:40 UTC


README

react/http 的 WebSocket 中间件

试试看

从示例目录中运行 chat_ws_server.php,并在几个浏览器窗口中导航到 http://127.0.0.1:4321/(仅在 Chrome 中进行了简要测试)

简单用法

一个简单的回声服务器

use Ratchet\RFC6455\Messaging\Message;
use React\EventLoop\Factory;
use React\Http\Server;
use Voryx\WebSocketMiddleware\WebSocketConnection;
use Voryx\WebSocketMiddleware\WebSocketMiddleware;

require __DIR__ . '/../../vendor/autoload.php';

$loop = Factory::create();

$ws = new WebSocketMiddleware([], function (WebSocketConnection $conn) {
    $conn->on('message', function (Message $message) use ($conn) {
        $conn->send($message);
    });
});

$server = new Server($loop, $ws);

$server->listen(new \React\Socket\Server('127.0.0.1:4321', $loop));

$loop->run();

选项

默认情况下,WebSocketMiddleware 使用 ratchet/rfc6455 的默认最大消息和帧大小,并禁用压缩。这些设置可以用 WebSocketOptions 对象覆盖。

$ws = new WebSocketMiddleware(
    [],
    $connectionHandler,
    [],
    WebSocketOptions::getDefault()
        ->withMaxFramePayloadSize(2048)
        ->withMaxMessagePayloadSize(4096)
        ->withPermessageDeflate());