jetiradoro / elephant.io
通过 PHP 向实时 WebSocket 引擎发送事件
v1.0.0
2023-04-18 15:45 UTC
Requires
- php: >=7.2
- psr/log: >=1.1
Requires (Dev)
- monolog/monolog: >=2.8
- phpunit/phpunit: >=8.5
This package is auto-updated.
Last update: 2024-09-19 14:23:35 UTC
README
___ _,.--.,_ Elephant.io is a rough websocket client
.-~ ~--"~-. ._ "-. written in PHP. Its goal is to ease the
/ ./_ Y "-. \ communications between your PHP Application and
Y :~ ! Y a real-time server.
lq p | / .|
_ \. .-, l / |j Requires PHP 5.4 and openssl, licensed under
()\___) |/ \_/"; ! the MIT License.
\._____.-~\ . ~\. ./
Y_ Y_. "vr"~ T Built-in Engines:
( ( |L j - Socket.io 4.x, 3.x, 2.x, 1.x
[nn[nn..][nn..] - Socket.io 0.x (courtesy of @kbu1564)
~~~~~~~~~~~~~~~~~~~
安装
我们建议您使用 composer,以下命令: php composer.phar require elephantio/elephant.io
。对于其他方式,您可以查看发布页面或 Git 克隆 URL。
用法
要使用 Elephant.io 与以下描述的 socket 服务器进行通信。
<?php use ElephantIO\Client; $url = 'https://:8080'; $client = new Client(Client::engine(Client::CLIENT_4X, $url)); $client->initialize(); $client->of('/'); // emit an event to the server $data = ['username' => 'my-user']; $client->emit('get-user-info', $data); // wait an event to arrive // beware when waiting for response from server, the script may be killed if // PHP max_execution_time is reached if ($packet = $client->wait('user-info')) { // an event has been received, the result will be a stdClass // data property contains the first argument // args property contains array of arguments, [$data, ...] $data = $packet->data; $args = $packet->args; // access data $email = $data['email']; }
文档
文档尚未编写,但您应该检查 示例目录,以了解该库的工作方式。
特别感谢
特别感谢 Mark Karpeles,他帮助项目负责人理解了 WebSocket 的工作方式。