微软(Azure)物联网 IoT解决方案研究

先吐槽下

官方文档写的一塌糊涂,Python SDK 并没有完善好,可以看 Nodejs SDK , 但是没办法谁让微软的IoT成熟。

再吐槽下

国内的IoT云,目前没有一个好用的,不是内测就是写明不保证会关闭,感觉还挺棒的大厂也就一个 OneNET 感觉还不错,但是不够成熟。最后选择了微软IoT,毕竟摩拜单车用的是这个,有成熟的解决方案。(其实 AWS IoT 也不错)

什么是MQTT?

目前采用的是 IoT 的 mqtt 协议

  1. 使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合;
  2. 对负载内容屏蔽的消息传输;
  3. 使用 TCP/IP 提供网络连接;
  4. 有三种消息发布服务质量:
    “至多一次”,消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。
    “至少一次”,确保消息到达,但消息重复可能会发生。
    “只有一次”,确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果。
  5. 小型传输,开销很小(固定长度的头部是 2 字节),协议交换最小化,以降低网络流量;
  6. 使用 Last Will 和 Testament 特性通知有关各方客户端异常中断的机制;

SDK 安装

Git 下载 记住要加上 –recursive

没有加 –recursive ??? 那就执行下面这句

编译

Mac:自己电脑编译不过,换了一台 Mac 没有问题
Linux:仅支持 Ubuntu,一次通过
Windows:没试

本次就写 Ubuntu 如何编译 SDK

更新系统 && 安装组件

成功的话会生成 iothub_client.so 文件

如何使用?

自己看 Github Demo 即可

封装后的演示

采用的是方法模式 ,非消息模式

后记

好东西,解决了大并发大流量的实时操作问题。
经过测试很稳定,目前操作几千台设备没什么问题。

有些东西不方便写出来,见谅。