This toy implements MQTT's broker in Linux.
目标:在 Linux
平台上实现 MQTT
协议。有以下几点说明:
- 有关 MQTT 协议的介绍,请见 官网 或者阅读 docs 文件夹下的相关文件
- 针对 MQTT 协议的版本号:
v3.1.1
- 目前为止,协议的完成度(只列出未实现的内容)
- 遗言机制
- 保留消息
- 密码登录
- 数据持久化
- 可优化之处
- 会话状态哈希表的 key 可以修改为会话对应的 client_id ,现在其为会话对应的 client_sock
- 使用多路复用
- 【注】:此处只实现 MQTT 的 broker 端
开发 & 运行环境
- IDE:
CLion 2018.3.3
- 构建工具:
CMake
- Toolchains:连接远程主机
ubuntu 16.04
以下两图描述了此处实现 MQTT 的思路:
由于这里只实现了 MQTT 的 broker 端,所以测试中 MQTT 的客户端使用:mosquitto-clients
。
附:在 ubuntu 上安装 mosquitto-clients 以及对它的使用
- 只需要一条命令:
sudo apt-get install mosquitto-clients
- mosquitto_pub和mosquitto_sub 命令参数
测试步骤及结果
- 首先运行
broker.c
以启动 broker 端,得到如下提示:
写在最后:
- 时间有限,Bug 无限。请多包涵~~
- 对 c 不熟,可能写的不漂亮。请多包涵~~
- ⭐ ⭐ ⭐ 💕