php 本地实现连接rabbitMq ,发送接收消息

本文档详细记录了使用PHP连接RabbitMQ的过程,包括遇到的问题及解决方案。首先介绍了调用RabbitMQ的PHP应用教程,然后讨论了PHP与C扩展的选择,提到了PHP扩展在安装和使用中的坑,如连接失败、类名找不到和Composer命名空间问题。最后,文章阐述了如何在YII2的console命令行中配置并使用RabbitMQ,以及同事关于消息处理和Redis队列的想法。
摘要由CSDN通过智能技术生成

1, 需要一个中文文档

https://xiaoxiami.gitbook.io/rabbitmq_into_chinese_php/ying-yong-jiao-cheng/php-ban/1-hello_world 

详细的说明了调用rabbitMq的各种方法。

 

2,开始连接的时候,第一次使用有许多的坑,最后多谢老铁给我讲解了一下关于bs cs的东西

rabbit 拓展有php写的 还有c写的拓展,分成两种。

php:


require_once __DIR__ . '/vendor/autoload.php';
use PhpAmqpLib\Connection\AMQPStreamConnection;
use PhpAmqpLib\Message\AMQPMessage;

类似于上面这个就是php的扩展,不用考虑扩展和php的版本问题,这也算是坑的一部分吧。

 

c:

    $conn = new \AMQPConnection($conn_args);
	
	$message = json_encode(array('Hello World3!','php3','c++3:'));
	
    //创建channel
	$channel = new \AMQPChannel($conn);
	
    //创建exchange
	$ex = new \AMQPExchange($channel);
可以使用 RabbitMQ 的 Java 客户端库来实现消息接收发送。首先需要创建一个连接工厂,然后通过连接工厂创建一个连接,再通过连接创建一个通道,最后可以在通道上声明队列并发送/接收消息。以下是一个简单的示例代码: ``` import com.rabbitmq.client.ConnectionFactory; import com.rabbitmq.client.Connection; import com.rabbitmq.client.Channel; public class RabbitMQExample { private final static String QUEUE_NAME = "hello"; public static void main(String[] argv) throws Exception { // 创建连接工厂 ConnectionFactory factory = new ConnectionFactory(); factory.setHost("localhost"); factory.setUsername("guest"); factory.setPassword("guest"); // 创建连接 Connection connection = factory.newConnection(); // 创建通道 Channel channel = connection.createChannel(); // 声明队列 channel.queueDeclare(QUEUE_NAME, false, false, false, null); // 发送消息 String message = "Hello World!"; channel.basicPublish("", QUEUE_NAME, null, message.getBytes("UTF-8")); System.out.println(" [x] Sent '" + message + "'"); // 接收消息 channel.basicConsume(QUEUE_NAME, true, (consumerTag, delivery) -> { String receivedMessage = new String(delivery.getBody(), "UTF-8"); System.out.println(" [x] Received '" + receivedMessage + "'"); }, consumerTag -> {}); // 关闭通道和连接 channel.close(); connection.close(); } } ``` 这个示例代码演示了如何发送一个消息接收一个消息。注意,这个示例代码中的队列是在本地 RabbitMQ 服务器上声明的,如果需要连接到远程 RabbitMQ 服务器,需要修改连接工厂的相关参数。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值