123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- <?php
- namespace components;
- use PhpAmqpLib\Channel\AMQPChannel;
- use PhpAmqpLib\Connection\AMQPConnection;
- use PhpAmqpLib\Message\AMQPMessage;
- use PhpAmqpLib\Connection\AMQPStreamConnection;
- use PhpAmqpLib\Exception\AMQPConnectionException;
- use yii\base\Component;
- use yii\base\ErrorException;
- use yii\base\Event;
- use yii\base\Exception;
- class RabbitMqServer{
- CONST HOST = "172.30.118.225";
-
- CONST PORT = 5673;
- CONST USER = "guest";
- CONST PASS = "guest";
- private $conn_args = array('host'=>'127.0.0.1','port'=>'5672','login'=>'guest','password'=>'guest','vhost'=>'/') ;
- private $channel;
- private $e_name = 'glitzcloud';
- public function __construct(){
-
- $this->channel = $this->connrabbit($this->conn_args);
- if(!$this->channel){
- echo 'Cannot Connect to the broker';
- exit();
- }
- }
-
- public function setRabbit($message,$k_route,$e_name=''){
- if(empty($e_name)){
- $e_name = $this->e_name;
- }
- $channel = $this->channel;
- $res1=$channel->queue_declare($e_name, false, true, false, false);
- $msg = new AMQPMessage($message,
- array(
- 'delivery_mode' => AMQPMessage::DELIVERY_MODE_PERSISTENT,
- )
- );
- $res= $channel->basic_publish($msg,'yang',$e_name);
- $channel->close();
- return true;
- }
-
- public function getRabbit($k_route,$q_name){
-
-
- if(empty($e_name)){
- $e_name = $this->e_name;
- }
- $channel = $this->channel;
- }
-
- protected function connrabbit($conn_args){
- $conn = new AMQPStreamConnection(
- self::HOST, self::PORT, self::USER, self::PASS);
- if(!$conn->connectOnConstruct()){
- return false;
- }
- $channel = new AMQPChannel($conn);
- return $channel;
- }
- }
|