dmamontov / stomp
此包已被弃用且不再维护。未建议替代包。
React 的 STOMP 绑定。
1.0.0
2019-09-13 06:57 UTC
Requires
- php: >=5.4
- evenement/evenement: ~2.0
- react/promise: ~2.0
- react/socket: ~1.3.0
Requires (Dev)
- phpunit/phpunit: ^5.7 || ^6.4
This package is auto-updated.
Last update: 2020-03-13 08:57:16 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 标头设置为 '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。