阿里云IoT套件中MQTT协议的使用

嘎子 其他开发 2017-05-28 2,707 次浏览 , 没有评论

今天,阿里云给我发来邮件,说我申请的IoT套件已经可以申请了,虽然我不记得自己什么时候申请过了,但请我试用就试用一下呗。我看这个阿里云的这个东东有两个节点,一个是“华东2节点”,还有一个是“杭州节点”。这两个节点的接入方法好像有什么不太一样,但具体自己也没有搞太清楚,由于自己是分配在了“华东2节点”,所以自己只研究了华东2节点。

至于建产品,建设备什么的我就不说了,官方的文档这些还是说的挺清楚的,我想说的主要问题是aliyun的MQTT协议与公开的MQTT协议有什么不同。在阅读此文章之前,我默认的认为读者是有一定的MQTT协议的认知的,如果对这个协议还不太清楚,请参照MQTT。MQTT是一种公开的协议,大家都知道连接到一个MQTT的Broker上,一般需要5点信息:主机,端口,clientID,userName和password(当然,部分服务器并不对clientID、userName和password中的一项或几项进行约束)。

不同的报务商提供服务时一般都在这5点的做文章。比方说,在文章通过Paho客户端接入OneNet中就介绍了中国移动的MQTT协议是使用固定的主机和端口,然后用产品、设备的id或鉴权信息来填充clientID、userName和password。OneNet的这种做法是一种比较常见,比较简单的解决方案。但其也存在一定的信息泄漏的风险。而阿里去采用了一种相对更加安全的方案。

阿里云的接入分成了两步走,分别叫做设备认证和接入协议。

一、设备认证

设备认证的过程在本质上就是通过控制台上的productKey、deviceName、diviceID和deviceSecret来获取上面我所说的5项内容的过程。具体细节请参照:设备认证_设备基于MQTT接入_设备端接入手册。从参考文章上看,通过https请求就可以得到上面5个参数中的4个,而对clientID没有进行特别的要求。但在给出的SDK代码中,看到官方给出的对clientID的处理方式是:

既然文档中没有明确要求clientID,应该是可以任意设置的,但在没有特殊要求的时候建议使用官方的方式。

二、接入协议

有了第一步的铺垫,第二步就相当简单了,这里不再多说。

三、阿里云使用此种方法的优劣

优势主要有两点:

1、安全性的提高。多了一次设备认证的过程,安全性有明显提高。

2、便于服务器升级。如果连接服务器,端口,userName,password更改甚至都不需要升级程序,只要升级设备认证服务器即可。

劣势:

程序的通用性降低,因为多了一次设备认证,多了一次请求。

四、阿里云现在的SDK支持

刚才又仔细的看了一下“华东2节点”的SDK支持,可以说是非常不完善的,毕竟是刚上线的,可能后期还会再更新。

现在的SDK只支持linux C和Java,而这两种对我们来说是远远不够的,主要是需要在单片机中的支持才更好。

当然,他的“杭州节点”里面SDK支持的平台更多一些,也支持了一些主流的嵌入式操作系统。依此来看,以后阿里云肯定会实现这些SDK的,毕竟现在还在测试阶段,正式发布相信会好很多。但“杭州节点”也没有实现自己最喜欢的mbed平台,看后期正式上线后有没有支持吧,如果没有,我会想办法移植一个给大家使用。现在平台还没有完全稳定,所以先不着急。

原创文章,转载请注明: 转载自TsonTec:测量解决方案提供者

本文链接地址: 阿里云IoT套件中MQTT协议的使用

相关主题

  • 在GPRS模块(SIM800C)和STM32芯片上实现MQTT协议2017-05-18 在GPRS模块(SIM800C)和STM32芯片上实现MQTT协议 (12)
    最近真是的好一个劲的折腾,算是完全搞明白了如何在STM32上实现MQTT协议了。 一、本教程中说明的内容 先说说本文化的适用范围吧: 一、使用的芯片 […]
  • 通过Paho客户端接入OneNet2017-05-12 通过Paho客户端接入OneNet (1)
    首先说本文想要说明一个什么问题:OneNet平台支持MQTT协议,但给的资料非常有限。而Paho是一个开源的,MQTT的各种服务器、客户端的集成。本文要做的就 […]
  • 使用代理(有验证)连接TcpClient2016-02-07 使用代理(有验证)连接TcpClient (2)
    先分享代码给大家: static TcpClient connectViaHTTPProxy( string targetHost, […]
  • 使用jQuery做一个制作滚轮跟随(Scroll Follow)动画2017-01-16 使用jQuery做一个制作滚轮跟随(Scroll Follow)动画 (0)
    本文首先给大家介绍一个开源的小工具,方便而实用。最后给大家发一个自己写的代码,可定制性高。 1、开源工具JQUERY SCROLL […]
  • Git使用心得之Git与GitHub的关系2016-02-29 Git使用心得之Git与GitHub的关系 (3)
    今天把Git算是搞到初步可用了,发现进而的东西还是不少的,给大家分享一下。 Git真的是很早就听说了,但是一直没有用过,因为一直是自己一个人 […]
  • 新浪云存储SCS简便使用方法分享2016-01-29 新浪云存储SCS简便使用方法分享 (1)
    首先表明一下自己的立场,我其实只想做个应用程序在线更新的功能,所以说流量不大,用户不大。而且程序是公开发行的,所以只要没有修改,大家都可以读是没有问题的。说白 […]

说点什么

您将是第一位评论人!

提醒
avatar
wpDiscuz
回顶部