三、MQTT Windosw下的 进一步调试

一: 安装抓包工具:Wireshark, 网上大巴安装包,百度就好啦,按着顺序安装完就可以啦,软件打开界面如下:

  

  如图,双击“”本地连接“”即可开始抓包,但是这个只能抓取网卡收发的数据;

  如果想要抓取本地的TCP数据需要双击Npcap Loopback Adapter, 但是这个选项如果只安装Wireshark是没有的,还需要做下一步的操作;

 

二:安装Npcap,可以参考博客:wireshark如何抓取本机包,安装完成之后再打开界面就会出现上图的界面中的 所有选项

 

三:Wireshark的简单使用:

  1. 抓包页面如下:

  

  2. 如果不过滤数据太多了,没办法查看,所以需要设置过滤器,这里列举一些必要的设置;

    1)只查看含有IP为127.0.0.1的数据:(设置完毕之后记得点击红框中的箭头来生效)

      

    2) 只看Source 或者Destination的IP为127.0.0.1的数据

      

       

    3) 只看端口为61613的数据:

       

     4) 表达式可以用C语言中的逻辑运算符进行拼接,如:

      

四:相关资料:

  1. MQTT协议的中文资料:https://mcxiaoke.gitbooks.io/mqtt-cn/content/mqtt/01-Introduction.html

  2. MQTT的客户端和服务器工具:

    服务器: apache-apollo-1.7.1 

    客户端:org.eclipse.paho.ui.app-1.1.1-win32.win32.x86_64

  3. 此外也可以用一下的Python Client也可以用一用:    

 1 #-*-coding:utf-8-*-   
 2 import paho.mqtt.client as mqtt    
 3     
 4 # 当连接上服务器后回调此函数    
 5 def on_connect(client, userdata, flags, rc):    
 6     print("Connected with result code "+str(rc))    
 7     
 8     # 放在on_connect函数里意味着    
 9     # 重新连接时订阅主题将会被更新    
10     client.subscribe("topic/sub")    
11     
12 # 从服务器接受到消息后回调此函数    
13 def on_message(client, userdata, msg):    
14     print("主题:"+msg.topic+" 消息:"+str(msg.payload))    
15 
16 
17 username = "admin"    # MQTT服务器的登录账号
18 password = "password" # MQTT的服务器登录密码
19 myclinet_id = "IamPythonClient" # 客户端标识符 Client Identifier
20 
21 #参数有 Client(client_id="", clean_session=True, userdata=None, protocol=MQTTv311, transport="tcp")   
22 client = mqtt.Client(myclinet_id )    
23  
24 client.on_connect = on_connect #设置连接上服务器回调函数    
25 client.on_message = on_message  #设置接收到服务器消息回调函数
26 client.username_pw_set(username, password)
27 client.connect("127.0.0.1", 61613, 60)  #连接服务器,端口为1883,维持心跳为60秒    
28 client.loop_forever()   
29     
View Code

 

   

  

  

  

posted @ 2018-02-09 17:50  宋河  阅读(310)  评论(0编辑  收藏  举报