0%

历经重重坎坷,我们已经完成了连接报文、心跳报文以及订阅报文和取消订阅报文的分析和实战,仅仅还剩下最后一种报文 —— PUBLISH 报文我们还没学习,这也是最复杂的一种报文,我们需要支持 QoS0-QoS2 三种消息服务级别。这篇文章我们就来看看 PUBLISH 报文的结构,以及完成 QoS0 级别消息的发送与接收实战。

阅读全文 »

经过前面的努力,我们的程序已经能够正常连接服务器,并且可以实现保活功能。接下来我们继续深入学习。这篇文章的主题是 Topic 和订阅与取消订阅,对应 SUBSCRIBE 与 UNSUBSCRIEB 报文,同时还需要接收服务端响应的 SUBACK 和 UNSUBACK 报文,这些报文的结构在上一篇文章已经介绍了,本文我们研究一下如何实现。

阅读全文 »

这篇文章来分析一下 SUBSCRIBE 相关报文,客户端向服务端发送 SUBSCRIBE 报文用于创建一个或多个订阅。每个订阅注册客户端关心的一个或多个 主题。为了将应用消息转发给与那些订阅匹配的主题,服务端发送 PUBLISH 报文给客户端。SUBSCRIBE 报文也(为每个订阅)指定了最大的 QoS 等级,服务端根据这个发送应用消息给客户端。

阅读全文 »

前面的文章中已经为 ”连接服务器“ 这一任务做好了足够的铺垫,这篇文章,我们在之前的基础上会构建一个简单的测试程序 和 Makefile 文件来编译程序,并让它成功运行起来。最后,为了验证我们的程序是不是真正的完成了要求的功能,我们还会使用 tcpdump 进行抓包验证。在这个过程中,代码出现 bug 时,我们使用 gdb 来进行调试和解决。下面让我们开始吧!

阅读全文 »

在接触一些新概念、新技术时,不仅仅要学习其理论,也要结合实践来加深印象。之前的文章详细介绍了连接的建立与保持相关报文,这篇文章就在上一篇文章的基础上,实现一个能够进行连接建立和保持的简易 mqtt 客户端,随着学习的深入,我们也会一点一点完善它。

阅读全文 »