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

栏目: 后端 · 发布时间: 8年前

内容简介:阿里云IoT套件中MQTT协议的使用

今天,阿里云给我发来邮件,说我申请的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的这种做法是一种比较常见,比较简单的解决方案。但其也存在一定的信息泄漏的风险。而阿里去采用了一种相对更加安全的方案。

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

目录

  • 三、阿里云使用此种方法的优劣
  • 四、阿里云现在的SDK支持

一、设备认证

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

if (NULL == puser_info->pubKey) {
    //Append string "::nonesecure::" to client_id if TCP connection be used.
    //根据前文代码,如果不使用加密方式,pubKey就为NULL,
    //如果使用加密方式,pubKey为公钥匙
    //此时client_id为device_id+"::nonesecure::"
    ret = snprintf(puser_info->client_id,
                CLIENT_ID_LEN,
                "%s%s",
                pdevice_info->device_id,
                "::nonesecure::");
 
} else {
    //此时为加密方式,client_id为device_id
    ret = snprintf(puser_info->client_id,
                CLIENT_ID_LEN,
                "%s",
                pdevice_info->device_id);
}

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

二、接入协议

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

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

优势主要有两点:

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

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

劣势:

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

四、阿里云现在的SDK支持

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

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

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


以上所述就是小编给大家介绍的《阿里云IoT套件中MQTT协议的使用》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

About Face 2.0

About Face 2.0

Alan Cooper、Robert M. Reimann / Wiley / March 17, 2003 / USD 35.00

First published seven years ago-just before the World Wide Web exploded into dominance in the software world-About Face rapidly became a bestseller. While the ideas and principles in the original book......一起来看看 《About Face 2.0》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具