ruslanmelnychenko / socket.io-php-emitter
PHP socket.io 事件发射器(PhpRedis)
1.0.0
2022-05-22 14:32 UTC
Requires
- php: ^7.1.1|^8
- ext-json: *
- ext-redis: *
- rybakit/msgpack: ^0.7.1
Requires (Dev)
- mockery/mockery: ^1.0
- phpunit/phpunit: ^5.0
This package is not auto-updated.
Last update: 2024-09-24 00:30:30 UTC
README
node.js socket.io-emitter 的 PHP 实现。使用 PhpRedis 客户端。
安装
composer require ruslanmelnychenko/socket.io-php-emitter
使用方法
发射负载消息
use RuslanMelnychenko\SocketIO\Emitter; ... $client = new \Redis(); (new Emitter($client)) ->of('namespace')->emit('event', 'payload message');
标志
可能的标志
- json
- volatile
- broadcast
要使用标志,只需像以下示例中那样调用即可
use RuslanMelnychenko\SocketIO\Emitter; ... $client = new \Redis(); $client->connect('127.0.0.1'); (new Emitter($client)) ->broadcast->emit('broadcast-event', 'payload message'); (new Emitter($client)) ->flag('broadcast')->emit('broadcast-event', 'payload message');
发射一个对象
use RuslanMelnychenko\SocketIO\Emitter; ... $client = new \Redis(); $client->connect('127.0.0.1'); (new Emitter($client)) ->emit('broadcast-event', ['param1' => 'value1', 'param2' => 'value2', ]);
在多个房间中发射一个对象
use RuslanMelnychenko\SocketIO\Emitter; ... $client = new \Redis(); $client->connect('127.0.0.1'); (new Emitter($client)) ->in(['room1', 'room2']) ->emit('broadcast-event', ['param1' => 'value1', 'param2' => 'value2', ]);
在多个房间中发射一个对象,但排除某些房间
use RuslanMelnychenko\SocketIO\Emitter; ... $client = new \Redis(); $client->connect('127.0.0.1'); (new Emitter($client)) ->in(['room1', 'room2']) ->except(['room3']) ->emit('broadcast-event', ['param1' => 'value1', 'param2' => 'value2', ]);
发送远程命令
use RuslanMelnychenko\SocketIO\Emitter; ... $client = new \Redis(); $client->connect('127.0.0.1'); (new Emitter($client)) ->in(['room1', 'room2']) ->except(['room3']) ->socketsJoin('room4'); (new Emitter($client)) ->in(['room4']) ->socketsLeave('room3'); (new Emitter($client)) ->in(['room1']) ->disconnectSockets(); (new Emitter($client)) ->of('/tasks') ->serverSideEmit('taskDone', 1);