PHP code example of maweibinguo / easyrabbitmq

1. Go to this page and download the library: Download maweibinguo/easyrabbitmq library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

maweibinguo / easyrabbitmq example snippets


	composer 

	$config = [
	    "host" => "127.0.0.1",
            "port" => "5672",
            "user" => "guest",
            "password" => "guest",
            "vhost" => "/",
            "channel_max_num" => 10,
	];	
	$instance = RabbitMq::getInstance($config);
	
	//延迟消息,30 秒中后才会到达指定的交换机
	$instance->pushToDirect(
				$msg = time(), //消息体内容
				$exchange = "easy_direct_exchange", //交换机名称
				$routingKey = "direct_test_queue", //消息的routingKey,consume(get) 方法到bingdingKey 要和routingKey保持一致
				$delaySec = 30 //延迟秒数
	);

	//无延迟,推入到指定到直链交换机
	$instance->pushToDirect(
				$msg = time(), //消息体内容
				$exchange = "easy_direct_exchange", //交换机名称
				$routingKey = "direct_test_queue", //消息的routingKey,consume(get) 方法到bingdingKey 要和routingKey保持一致
	);

	$config = [
	    "host" => "127.0.0.1",
            "port" => "5672",
            "user" => "guest",
            "password" => "guest",
            "vhost" => "/",
            "channel_max_num" => 10,
	];	
	$instance = RabbitMq::getInstance($config);
	
	//延迟消息,30 秒中后才会到达指定的交换机
	$instance->pushToFanout(
				$msg = time(), //消息体内容
				$exchange = "easy_fanout_exchange", //交换机名称
				$delaySec = 30 //延迟秒数
	);

	//无延迟,推入到指定到直链交换机
	$instance->pushToFanout(
				$msg = time(), //消息体内容
				$exchange = "easy_fanout_exchange" //交换机名称
	);

	$config = [
	    "host" => "127.0.0.1",
            "port" => "5672",
            "user" => "guest",
            "password" => "guest",
            "vhost" => "/",
            "channel_max_num" => 10,
	];	
	$instance = RabbitMq::getInstance($config);
	
	//延迟消息,30 秒中后才会到达指定的交换机
	$instance->pushToTopic(
				$msg = time(), //消息体内容
				$exchange = "easy_topic_exchange", //交换机名称
				/**
				 * routingKey 要同consum(get)方法的bindingKey相匹配
				 * bindingKey支持两种特殊的字符"*"、“#”,用作模糊匹配, 其中"*"用于匹配一个单词、“#”用于匹配多个单词(也可以是0个)
				 * 无论是bindingKey还是routingKey, 被"."分隔开的每一段独立的字符串就是一个单词, easy.topic.queue, 包含三个单词easy、topic、queue
				 */
				$routingKey = "easy.topic.queue",
				$delaySec = 30 //延迟秒数
	);

	//无延迟,推入到指定到直链交换机
	$instance->pushToTopic(
				$msg = time(), //消息体内容
				$exchange = "easy_topic_exchange", //交换机名称
				$routingKey = "easy.topic.queue" 	
	);

	$config = [
	    "host" => "127.0.0.1",
            "port" => "5672",
            "user" => "guest",
            "password" => "guest",
            "vhost" => "/",
            "channel_max_num" => 10,
	];	
	$instance = RabbitMq::getInstance($config);
	$instance->consume(
		$queueName = "direct_test_queue",//订阅的队列名称
		$consumerTag = "c1",//消费标记
		$exchange = "easy_direct_exchange",//交换机名称
		$bindingKey = "direct_test_queue",//bindingkey,如果是直链交换机需要同routingKey保持一致
		$callback = function($msg){
		    $body = $msg->body;
		    file_put_contents("./test.log", "time => " . time() . "\t" . " body => " . $body . PHP_EOL , FILE_APPEND);
		    //如果返回结果不绝对等于(===)true,那么将触发消息重试机制
		    return false;
		},
		//5次消费消费失败后,失败消息将会投递到的队列名称
		$failedQueue = "easymq@failed"
	);

	$config = [
	    "host" => "127.0.0.1",
            "port" => "5672",
            "user" => "guest",
            "password" => "guest",
            "vhost" => "/",
            "channel_max_num" => 10,
	];	
	$instance = RabbitMq::getInstance($config);
	$instance->get(
		$queue = "get_queue",
		$exchange = "easy_fanout_exchange",
		$bindingKey = "",
		$callback = function($msg){
		    $body = $msg->body;
		    file_put_contents("./test.log", "time => " . time() . "\t" . " body => " . $body . PHP_EOL , FILE_APPEND);
		    //如果返回结果不绝对等于(===)true,那么将触发消息重试机制
		    return false;
		},
		//5次消费消费失败后,失败消息将会投递到的队列名称
		$failedQueue = 'easymq@failed'
    	);