由于项目需要,不得不在stm32板子上实现RabbitMQ客户端以连接云服务器。查看网上资料,鲜有移植AMQP到stm32上的,rabbitmq -c客户端也只有支持windows和Linux系统的源码。所以只能照着源码自己折腾一个简单的客户端。
本章主要梳理一下一些需要了解的概念。
一、AMQP与RabbitMQ
AMQP,即 Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议, 是应用层协议的一个开放标准, 为面向消息的中间件设计。
AMQP 本身是作为应用层的协议,就像常用的HTTP协议一样,其填充于TCP 协议层的数据部分,主要是通过协议命令来进行交互(如connection.start、connncetion.start-ok、channnel.open、channnel.open-ok等 ),所以它是一个二进制协议。
而RabbitMQ是遵从AMQP协议的,换句话说,RabbitMQ就是AMQP协议的Erlang的实现,(当然RabbitMQ还能支持MQTT、HTTP等多个协议)。
二、高级消息队列模型(AMQ模型)
AMQ 模型定义了一系列模块化组件和标准规则来进行协作。有三种类型的组件可以连接服务器处理链来创建预期的功能:
1. &