yangweijie / es-bunny
Installs: 4
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/yangweijie/es-bunny
Requires
- php: >=7.4
- ext-pcntl: *
- ext-sockets: *
- easyswoole/easyswoole: 3.4.2
Requires (Dev)
- phpunit/phpunit: ^9.0
README
ES-Bunny是一个适用于EasySwoole的AMQP/RabbitMQ客户端库,基于PHP实现,支持同步和异步(基于Swoole协程)两种使用方式。
特性
- 同步客户端:适用于简单的应用场景
- 异步客户端:基于Swoole协程,适用于需要高并发处理能力的场景
- 完全兼容AMQP 0-9-1协议
- 支持心跳检测,确保连接稳定性
- 易于使用的API,遵循AMQP类/方法命名约定
安装
composer require yangweijie/es-bunny
环境要求
- PHP >= 7.4
- Swoole扩展(可选,用于异步客户端)
- EasySwoole框架(可选,用于异步客户端)
使用方法
同步客户端
use Yangweijie\EsBunny\SynchronousClient; $client = new SynchronousClient([ 'host' => '127.0.0.1', 'port' => 5672, 'vhost' => '/', 'user' => 'guest', 'password' => 'guest', ]); try { $client->connect(); $channel = $client->channel(); $channel->queueDeclare('test-queue', false, true, false, false); // 发布消息 $channel->publish('Hello World!', [], '', 'test-queue'); // 消费消息 $message = $channel->get('test-queue'); if ($message) { echo "Received: " . $message->content . "\n"; $channel->ack($message); } $client->disconnect(); } catch (\Exception $e) { echo "Error: " . $e->getMessage() . "\n"; }
异步客户端(基于Swoole协程)
use Yangweijie\EsBunny\EasySwooleClient; $client = new EasySwooleClient([ 'host' => '127.0.0.1', 'port' => 5672, 'vhost' => '/', 'user' => 'guest', 'password' => 'guest', ]); try { $client->connect(); $channel = $client->channel(); $channel->queueDeclare('test-queue', false, true, false, false); // 发布消息 $channel->publish('Hello World!', [], '', 'test-queue'); // 消费消息 $message = $channel->get('test-queue'); if ($message) { echo "Received: " . $message->content . "\n"; $channel->ack($message); } $client->disconnect(); } catch (\Exception $e) { echo "Error: " . $e->getMessage() . "\n"; }
运行示例
php example/basic.php
测试
phpunit
许可证
MIT