asifkhankadiwala/php7elephant.io

通过 PHP 向 WebSocket 实时引擎发送事件

dev-master 2022-06-29 09:10 UTC

This package is auto-updated.

Last update: 2024-09-29 05:22:36 UTC


README

Build Status Latest Stable Version Total Downloads License

        ___     _,.--.,_         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 的工作方式。