ribbon netty,netty 源码分析

  ribbon netty,netty 源码分析

  

  

关于mqtt、mosquito的技术交流,可入群:221779856

  

本文由mtdjc撰写,转发请标注原址:

  blog.csdn.net/houjixin/article/details/21461225 33558号

  

一、 Mosquitto简介

  Mosquitto是一款开源的消息代理软件,实现了MQTT v3.1消息推送协议,支持轻量级、可分发/订阅的消息推送模式。是目前广泛使用的低功耗传感器。

  Mosquitto采用发布/订阅模式实现MQTT协议。这种设计模式在服务器程序中管理通信终端之间的关系,大大减少了客户端的开发和维护。

  

1.1、 mqtt协议简介

  队列遥测传输(mqtt)是IBM开发的即时通讯协议,可以成为物联网的重要组成部分。对于一些APP应用来说,这个协议可以用来和客户端保持长时间的连接。关于mqtt更详细的介绍,请访问其官方网站:http://mqtt.org/.

  其他版本的源代码:http://mosquitto.org/files/source/

  

1.2、 出版/订阅模式简介

  发布/订阅模型定义了如何向名为topic的节点发布和订阅消息。这个话题可以看作是消息的传输媒介,发布者向其发布消息,订阅者向其订阅消息。这种模型使得消息订阅者和消息发布者相互独立,可以保证消息的发布没有联系。

  在Tcp协议中,Tcp连接只提供一对一的可靠传输。比如主机A和B通信时,发起Tcp连接的一方只需要知道对方的ip地址和端口号,如下图1-1所示。

  图1-1一对一的交流

  每个tcp连接由以下五个因素决定:

  发送源ip地址、发送源端口号、目ip地址、目的端口号、通信协议

  在实际的程序开发过程中建立连接后,通信双方可能需要保持连接,以备下次数据传输时使用。另外,通信终端的数量可以是多个,如下图1-2所示,每个终端需要维护所有的通信关系。

  图1-2多对多通信

  在这种情况下,每个参与通信的客户端要维护的连接数将变得巨大,这对程序的开发和实现非常不利。发布/订阅模型是这个问题的解决方案。通过增加一个中间层,中间层可以保持这种多对多的关系,如下图1-3所示。这个中间层通常被称为服务器。

  图1-3中间层多对多通信的增加

  通过增加一个中间层服务器,每个客户端只需要保持与服务器的连接,而客户端之间的关系由中间服务器维护。这种设计模式将复杂的通信关系维护从客户端分离出来,使得客户端的开发和维护变得非常容易。

  这就是蚊子项目的工作原理。在蚊子程序中,客户端之间的关系是通过订阅树来维护的。

  

1.3、 Mosquito

  蚊子源目录结构介绍。

   -蚊子-1.2

  -客户端

   -示例

   - mysql_log

   -温度转换

   -安装程序

   -图书馆

   - cpp

   - jsws

   - python

  -徽标

   -男人

   -阿宝

   -利莫斯基托

   -蚊子

   - mosquitto.conf

   -莫斯基托酒吧

   -莫斯基托_sub

   - mosquitto-tls

   - mqtt

   -杂项

  -当前成本

   - gnome面板

  -安全性

  -服务

   -莫尼特

   - svscan

   -暴发户

   - src

   -数据库转储

   -测试

   -经纪人

   - c

   -图书馆

   - c

   - cpp

   - python

   - python3

   - ssl

   -德摩卡

  -鲁特卡

   -签名

  值得注意的目录有三个:/mosquito-1.2/src、/mosquito-1.2/lib和/mosquito-1.2/client,其中主要是src和lib目录

  Mosquito的源代码和相关文档可以从官网获得。官方网站是http://mosquitto.org/.

  Mosquitto客户端和服务器执行命令。

  [1]发布者客户端执行命令的示例:/mosquitto _ pu B-h 192 . 168 . 6 . 243-p 1883-t 111 -m 这是杰森。后-u111-p111

  [2]由订户客户端执行的命令的示例:/倔强的黄蜂60 -d -c -u hjx -P hjx

  [3]Mosquitto服务器执行的命令示例:/mosquitto

ribbon netty,netty 源码分析