ashikkaiser / lumen.io
Send events to a real time websocket engine through PHP
v1.0.1
2022-09-10 03:39 UTC
Requires
- php: ^7.3|^8.0
Requires (Dev)
- monolog/monolog: ^3.0
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2025-03-10 08:48:08 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)
~~~~~~~~~~~~~~~~~~~
Installation
We are suggesting you to use composer, with the following: composer require ashikkaiser/lumen.io
. For other ways, you can check the release page, or the git clone urls.
Usage
To use Elephant.io to communicate with socket server described as follow.
<?php use ElephantIO\Client; $url = 'http://localhost: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']; }
Documentation
The docs are not written yet, but you should check the example directory to get a basic knowledge on how this library is meant to work.
Special Thanks
Special thanks goes to Mark Karpeles who helped the project founder to understand the way websockets works.