react / stomp
React的STOMP绑定。
v0.2.0
2014-11-29 17:12 UTC
Requires
- php: >=5.4
- evenement/evenement: ~2.0
- react/promise: ~1.0
- react/socket: 0.4.*
Requires (Dev)
- phpunit/phpunit: 4.3.*
This package is auto-updated.
Last update: 2024-08-25 13:49:39 UTC
README
React的STOMP绑定。
STOMP是一种消息协议。它被大多数消息队列代理支持,例如RabbitMQ、Apollo等。
消息队列用于异步的进程间通信。这对于工作者、一般的长运行任务或长运行守护进程之间的通信非常有用。
安装
安装react/stomp推荐的方式是通过composer。
{ "require": { "react/stomp": "0.1.*" } }
示例
您可以使用React\Stomp\Client
与STOMP服务器交互。
<?php $loop = React\EventLoop\Factory::create(); $factory = new React\Stomp\Factory($loop); $client = $factory->createClient(array('vhost' => '/', 'login' => 'guest', 'passcode' => 'guest')); $client ->connect() ->then(function ($client) use ($loop) { $client->subscribe('/topic/foo', function ($frame) { echo "Message received: {$frame->body}\n"; }); $loop->addPeriodicTimer(1, function () use ($client) { $client->send('/topic/foo', 'le message'); }); }); $loop->run();
选项
host
: 连接到的主机,默认为127.0.0.1
。port
: 连接到的端口,默认为61613
(rabbitmq的stomp插件)。vhost
: 虚拟主机,默认为/
。login
: 登录用户名,默认为guest
。passcode
: 登录密码,默认为guest
。
确认
使用subscribe
方法订阅时,消息在服务器发送后立即被认为是已确认(ack header设置为'auto')。
您可以使用subscribeWithAck
手动确认订阅(请参阅STOMP规范中的SUBSCRIBE以获取可用的ack模式值)。
您将获得一个React\Stomp\AckResolver
作为回调函数的第二个参数,用于确认或忽略消息。
$client->subscribeWithAck('/topic/foo', 'client', function ($frame, $ackResolver) { if ($problem) { $ackResolver->nack(); } else { $ackResolver->ack(); } });
待办事项
- 支持帧体中的空字节
- 心跳
- 消费ACK
- 事务
- 流式传输帧体(使用流API)
测试
要运行测试套件,您需要PHPUnit。
$ phpunit
许可
MIT,请参阅LICENSE。