asan / nsq-swoole

NSQ的Swoole PHP客户端

v1.3 2017-06-27 09:29 UTC

This package is auto-updated.

Last update: 2024-09-09 18:54:02 UTC


README

PHP Swoole客户端,用于NSQ

要求

  • PHP 5.4或更高版本
  • Swoole 1.8.6或更高版本

安装

composer require asan/nsq-swoole

测试

发布

php tests/PublishTest.php

订阅

php tests/SubscribeTest.php

发布

客户端支持向N个nsqd服务器发布。这些服务器必须通过主机名明确指定。并且支持发布多个消息。

$client = new Asan\Nsq\Client;

$client->publishTo([
    ['host' => 'localhost', 'port' => 4150]
])->publish('test', 'single message');

//multiple messages
$client->publish('test', ['message one', 'message two']);

//HA publishing:
$client->publishTo([
    ['host' => 'nsq1', 'port' => 4150],
    ['host' => 'nsq2', /*'port' => 4150*/]
], Asan\Nsq\Client::PUB_QUORUM)->publish('test', 'HA publishing message');

订阅

客户端支持从N个nsqd服务器订阅,每个服务器将通过一个或多个nslookupd服务器自动发现。工作原理是nslookupd能够提供一个列表,其中包含为给定主题托管消息的自动发现的节点。

$lookup = new Asan\Nsq\Lookup\Lookupd([
    ['host' => 'nsq1', 'port' => 4161],
    ['host' => 'nsq2', /*'port' => 4161*/]
]);

$client = new Asan\Nsq\Client;

$client->subscribe($lookup, 'test', 'web', function($moniter, $msg) {
    echo sprintf("READ\t%s\t%s\n", $msg->getId(), $msg->getPayload());
});