本文整理汇总了PHP中PhpAmqpLib\Connection\AMQPConnection::exchange_declare方法的典型用法代码示例。如果您正苦于以下问题:PHP AMQPConnection::exchange_declare方法的具体用法?PHP AMQPConnection::exchange_declare怎么用?PHP AMQPConnection::exchange_declare使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PhpAmqpLib\Connection\AMQPConnection
的用法示例。
在下文中一共展示了AMQPConnection::exchange_declare方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: open
/**
* Open a connection with the RabbitMQ Server
*
* @return void
*/
public function open()
{
try {
$this->AMQPConnection = new AMQPConnection($this->host, $this->port, $this->username, $this->password, $this->vhost);
$this->channel = $this->AMQPConnection->channel();
$this->channel->queue_declare($this->queue_name, false, true, false, false);
$this->channel->exchange_declare($this->queue_name, 'x-delayed-message', false, true, false, false, false, new AMQPTable(["x-delayed-type" => "direct"]));
$this->channel->queue_bind($this->queue_name, $this->queue_name);
} catch (Exception $e) {
throw new Exception($e);
}
}
示例2: open
/**
* Open a connection with the RabbitMQ Server
*
* @return void
*/
public function open()
{
try {
$this->AMQPConnection = new AMQPConnection($this->host, $this->port, $this->username, $this->password, $this->vhost);
$this->channel = $this->AMQPConnection->channel();
$this->channel->queue_declare($this->queue_name, false, true, false, false);
$this->channel->exchange_declare($this->exchange, 'direct', false, true, false);
$this->channel->queue_bind($this->queue_name, $this->exchange);
} catch (Exception $e) {
throw new Exception($e);
}
}
示例3: send
/**
* Publish message to queue.
*
* @param mixed $message (array or string)
* @param Queue $queue
*
* @return bool|null
*/
public function send($message, Queue $queue = null)
{
if ($queue === null) {
$queue = $this->_queue;
}
if (is_array($message)) {
$message = \Zend\Json\Encoder::encode($message);
}
$this->exchangeName = 'router';
/*
name: $exchange
type: direct
passive: false
durable: true // the exchange will survive server restarts
auto_delete: false //the exchange won't be deleted once the channel is closed.
*/
$this->channel->exchange_declare($this->exchangeName, 'direct', false, true, false);
$this->channel->queue_bind($queue->getName(), $this->exchangeName);
$amqpMessage = new AMQPMessage($message, ['content_type' => 'text/plain', 'delivery_mode' => 2]);
$this->channel->basic_publish($amqpMessage, $this->exchangeName);
}