You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
964 B
51 lines
964 B
<?php
|
|
|
|
/**
|
|
* TEST BETA, need refactoring
|
|
*/
|
|
class LE_RABBITMQ
|
|
{
|
|
protected $connection,$channel,$exchange;
|
|
|
|
function __construct($inp=[])
|
|
{
|
|
if (!isset($inp['host'])) $inp['host']='127.0.0.1';
|
|
$this->connection = $this->connect($inp['host'],$inp['login'],$inp['pass']);
|
|
$this->channel = new AMQPChannel($this->connection);
|
|
$this->exchange = new AMQPExchange($this->channel);
|
|
}
|
|
|
|
|
|
function connect($host,$login,$pass)
|
|
{
|
|
$connection = new AMQPConnection();
|
|
$connection->setHost($host);
|
|
$connection->setLogin($login);
|
|
$connection->setPassword($pass);
|
|
$connection->connect();
|
|
return $connection;
|
|
}
|
|
|
|
function get_q($q)
|
|
{
|
|
$queue = new AMQPQueue($this->channel);
|
|
$queue->setName($q);
|
|
$queue->setFlags(AMQP_NOPARAM);
|
|
$queue->declareQueue();
|
|
return $queue;
|
|
}
|
|
|
|
function send_message($m,$q)
|
|
{
|
|
$qu = $this->get_q($q);
|
|
|
|
$this->exchange->publish($m, $q);
|
|
}
|
|
|
|
function get_message($q,&$f)
|
|
{
|
|
$this->get_q($q)->consume($f);
|
|
}
|
|
|
|
|
|
} |