前言

在庞大的物联网世界中,自己拥有一台物联网服务器时多么一件美好的事。如同自己做的衣服更合身,自己搭建的物联网服务更灵活。

2022/3/9搭建服务

首次搭建了服务,但是感觉在安全方面是个很大的问题。每个设备都能连接,每个设备都能随便发布,订阅主题。跟公有MQTT服务器区别不大。

2022/3/10增加认证

每台设备通过预先分配好的 (账户名+密码+设备ID)进行登录,如果恶意制造相同 (账户名+密码+设备ID)的设备。在设备有重连机制的情况下,两台设备会不断地把对方踢下线。导致通信不稳定。当然,这是我在测试中故意造成的后果,现实中很少见。设备登录安全 往后需要进一步提升。

当所有设备拥有独立的账号密码之后,会考虑到设备 通信独立性。给每台设备分配该设备可以订阅和发布的主题。每个设备之间的订阅和发布都是独立的,A设备不能订阅 B设备的主题,B设备不能订阅 A设备的主题,发布也如同。后面我可能会增加全局主题,局部主题。

2022/3/11增加令牌认证机制

单纯的 (账户名+密码+设备ID)认证,会存在很大的安全隐患。在MQTT认证时如果没有开启 TLS/SSL双向认证机制的时,可以对报文进行 抓包,会导致设备密码泄露。为了解决这个问题,打算把 web安全当中 令牌认证机制搬过来。所以我对原有的设备认证机制做了很大的改动,为了能够在MQTT当中使用令牌认证机制。

当我在做压测时发现服务器负载比往常高,这是令牌认证机制导致的,令牌认证机制虽好,但会降低认证效率。为了解决这个问题,后面增加了 令牌桶。增加 令牌桶使得认证效率提高。且更灵活的管理 令牌失效时间

2022/3/13客户端调试

我的 客户端用的是 Esp8266Esp8266在每次认证时都从 腾讯NTP服务器获取当前时间,md5(token+ts)生成令牌,提交认证。

但遇到一个问题,几次认证失败后,导致Esp8266内存不够,重启,结果如图所示。

2022/03/15 客户端调试

增加debug调试模式

增加一站式配置参数

特色:一行代码启动所有业务

void setup()
{application_initialize(); /* 应用程序初始化 */
}

特色:已封装函数块,无需关心底层业务逻辑

/**********************************************************************
MQTT接收消息在下面,可自由发挥
***********************************************************************/
//当MQTT收到消息
void mqtt_client_recived(){Serial.println(mqtt_client_recived_data);
}
/**********************************************************************
MQTT接收消息在上面,可自由发挥
***********************************************************************/

[scode type=“blue”]原创文章,转载注明出处[/scode]

2022/03/16

当实现 服务端设备逐渐完善时,又多了一个问题。因为我在服务端做的安全防护比较多。所以在硬件对接服务器时,需要人工配置很多参数。需要配置的参数如下。

  1. MQTT服务器地址

    1. 为了方便维护,给每台设备分配不同的服务器地址
  2. NTP服务器地址
    1. NTP服务器大部分情况下都是不会变的,但还是需要分配一下
  3. 设备账户
    1. 给每个设备分配一个账户,设备才能登录
  4. 设备ID
    1. 设备ID是设备接入节点的唯一标识
  5. 设备密钥
    1. 每次建立连接的时候,都需要依赖设备的唯一密钥
  6. 设备主题
    1. 设备主题当前设备独享的,其他设备无权限订阅/发布

当这么多参数需要配置时,就会很繁琐,自从人类会使用工具那一刻起,就因该考虑怎么用工具减少工作.于是我做了一个自动配置如上参数的工具.能够实现对参数的一键配置.按照凡人通俗易懂的理解,可以解释为一键注册.

2022/03/17

设备一键注册完成时,还是感觉不太方便.

于是又开发了个工具(AmCodeBuilder),实现了 代码自动生成.

2022/03/18

当我实现了代码自动生成后,又多了一个想法.

想把这么方便的东西给更多的人使用,想搭建一个微型网站,起名为 自由物联+

  1. 用户登录注册(Authing)
  2. 开源广场
  3. 设备管理
  4. 完善了arduino代码的生成
    1. 以前只能生成单页代码,目前能生成完整的arduino项目,并且提供压缩打包下载.

物联网服务器搭建记录,心得相关推荐

  1. 温度传感器温度数据LED屏幕展示--物联网服务器搭建

    物联网服务器搭建 第一次接触物联网服务,所以也百度了一下. 常见的物联网服务器 1.Eclipse Mosquitto 国外的 下载地址:Eclipse Mosquitto 该服务百度资料比较多,但是 ...

  2. 饥荒 阿里云服务器搭建记录

    获得一个服务器 我选的是阿里云学生免费体验的服务器 ubuntu 4核(vCPU) 8 GiB 3Mbps 带宽 饥荒 照搬的 饥荒云服务器搭建流程[Steam][阿里云] 安装工具 sudo apt ...

  3. 【记录】饥荒联机版+个人云服务器搭建(2020.6.19)

    [记录]饥荒联机版+个人云服务器搭建(至2020.6.19有效) 写在前面 所需材料 开始做菜! 1.进入属于自己服务器 2.安装依赖 3.安装SteamCMD及Steam客户端 4.安装饥荒联机版服 ...

  4. 基于ARM开发板搭建物联网服务器

    基于ARM开发板搭建物联网服务器 一.项目需求 1.1设备需求 1.2知识需求 1.3项目介绍 二.开发环境搭建 2.1阿里云服务器配置 2.2虚拟机交叉编译环境搭建 2.3下载相关应用压缩文件 三. ...

  5. 从零开始开发物联网项目(1)——mqtt服务器搭建

    去年开发了一个物联网的项目,入了很多坑,花了很多时间,不过最后终于做出了一个初代版本,也算完成了项目.为了避免自己遗忘,也为了让有兴趣学习物联网的同学少入点坑,我整理了一下,写成一个系列教程.通过这个 ...

  6. Valheim英灵神殿服务器搭建指南 个人记录及踩坑

    云服务器搭建游戏私服 一开始是朋友想自己建个服务器一起玩游戏,无奈如果使用某人主机当服务器的话,只要他关机了其他人都不能玩,而且作为服务器的主机需要一定的配置要求,并且这种方式会有很大的延迟波动,所以 ...

  7. 群晖NAS搭建SVN服务器过程记录

    刚买了一个入门级的群晖NAS个人云网盘,一直在想既然NAS上自带操作系统,而且又可以通过外部互联网读写网盘上的文件,那么可不可以在个人的NAS网盘上搭建一个SVN服务器呢? 群晖设置 群晖到手以后通过 ...

  8. nginx+nginx-rtmp-module的流媒体服务器搭建(记录)

    搭建nginx+nginx-rtmp-module的流媒体服务器 第一步: 下载 nginx 1.7.11.3 Gryphon.zip 版本nginx:(此版本不用编译 nginx-rtmp-modu ...

  9. 物联网平台搭建的全过程介绍(五)——基于阿里云物联网平台的Android聊天app源码

    本例程Android源码请点此处免费下载 物联网平台搭建的全过程介绍(四)两台设备之间通过云数据流转实现远程通信之Android studio例程中介绍了两台Android设备通过物联网平台进行通信的 ...

  10. linux服务器实训心得体会,linux实训心得体会 linux实训总结与体会

    <linux实训心得体会 linux实训总结与体会>由会员分享,可在线阅读,更多相关<linux实训心得体会 linux实训总结与体会(7页珍藏版)>请在人人文库网上搜索. 1 ...

最新文章

  1. python列表换行写入_如何使用Python3中的换行符将列表写入文件
  2. playbook编写分布式lnmp
  3. 用C语言操作MySQL数据库
  4. 修改ftp服务器用户,通过批处理修改FTP账号和密码
  5. 华为的哪个字体像苹果的_华为手机手写怎么变字体 苹果手写字体怎么变粗
  6. kindeditor上传图片php,使用 KindEditor 编辑器PHP语言本地上传图片提示错误
  7. 机器人编程软件semia_少儿机器人编程与软件编程区别
  8. paypal java sdk_PayPal-Java SDK /信用卡付款问题
  9. 多频外差三维重建 投影仪非线性误差补偿
  10. 腾讯地图位置服务器,腾讯地图推出地形图服务
  11. 使用ant design遍历多选组件时,选择一个,所有便利的选择器都进行了选择。
  12. 苹果手机滑动光标怎么设置_苹果手机移动的光标怎么设置出来
  13. java bcd asc_BCD码和ASCII码的区别
  14. 不会聊天?不会撩妹?宅男如何走出自闭的循环圈
  15. 软件工程可行性研究报告
  16. 一个敬谦基督徒的生活
  17. 报告总结:无线通信中的数学问题
  18. Emlog程序百度熊掌号一键集成+自动推送插件
  19. Go开发 之 基础语法(变量的声明、初始化、作用域,匿名变量,多变量赋值,变量逃逸分析)
  20. 博士学历真的很重要吗?

热门文章

  1. 一个好的测试工程师的简历到底是怎么写的
  2. 通用数据库弱密码检测解决方案
  3. Michele Maggiore《A Modern Introduction to Quantum Field Theory》(米歇尔·马焦雷《量子场论现代导引》)中文目录
  4. matlab 有源高滤波器,基于MATLAB有源滤波器的研究设计.ppt
  5. nginx tcp端口转发_使用Nginx进行TCP/UDP端口转发
  6. 博世传感器调试笔记(二)加速度及陀螺仪传感器BMI160
  7. java7 3dm下载_我的世界 1.7.10最新forge极简整合包
  8. 关于SI4463使用的个人总结
  9. 云南钉钉早教、幼儿园、托儿所一体化智能管理系统解决方案
  10. [二维压缩] | 图像游程编码