aguetkriegerisch / elephant.io-custom
Send events to a real time websocket engine through PHP, including customizable headers on handshake
Installs: 28
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 370
pkg:composer/aguetkriegerisch/elephant.io-custom
Requires
- php: >=7.2
- psr/log: ^1.1 || ^3.0
Requires (Dev)
- monolog/monolog: ^2.8 || ^3.0
- phpunit/phpunit: ^8.5 || ^9.5
This package is auto-updated.
Last update: 2025-10-29 00:03:13 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: php composer.phar require elephantio/elephant.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.