物联网服务器搭建记录,心得

article/2025/10/23 16:00:23

前言

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

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内存不够,重启,结果如图所示。

Esp8266意外重启

2022/03/15 客户端调试

增加debug调试模式

关闭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),实现了 代码自动生成.

Arduino代码自动生成

2022/03/18

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

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

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

http://chatgpt.dhexx.cn/article/OVMrDVjE.shtml

相关文章

超微物联网超级服务器IoT SuperServer SYS-210SE-31A 评测

SYS-210SE-31A是Supermicro在日益流行的边缘服务器领域的最新产品。有趣的是,这款2单元430mm短深度服务器提供了3个热插拔节点,每个节点都有1个CPU和8个DIMM插槽。它还具有PCIe Gen4 x16扩展插槽、免工具可维护性和高达55℃的工作温度范围。对实现高度通…

JAVA-删除文件夹下所有文件的3种方法,推荐使用JDK8 Stream流的语法

一、删除文件或文件夹的四种基础方法 下面的四个方法都可以删除文件或文件夹,它们的共同点是:当文件夹中包含子文件的时候都会删除失败,也就是说这四个方法只能删除空文件夹。 需要注意的是:传统 IO 中的 File 类和 NIO 中的 Pat…

软件测试必看的5本书

最近好多朋友加我微信,问我有没有好一点的测试相关书籍推荐看一下,现具体介绍如下几本: 1. 软件测试的艺术(第3版) 软件测试的艺术 作 者:(美)梅耶(Myers, G. J.) 等著,张晓明,黄琳 译 出 版 社:机械工业出版社 简介:本书以一次自评价测试开篇,从软件测试的心理…

软件测试入门有哪些书籍可供推荐?

书不在多,关键是精! 入门基础:《软件测试》、《鸟哥的Linux私房菜》、《head first python》 测试技术:《深入理解Java虚拟机》、《移动App性能评测与优化》、《性能之巅》 代码分析:《head first 设计模式》、《重…

盘点几本软件测试入门必读的经典书籍,让你少走一半弯路

读书一直以来就是获取知识的最直接途径,并且成本低廉。每本书都是作者深度思考和总结的成果,书本的内容一般都要经过缜密的调研,都是作者辛辛苦苦实践的结晶。技术书籍写作耗时都比较久,基本上能广泛流传的书籍,都是经…

你在自学软件测试吗?学软件测试10本必看书

没有软件开发,就没有软件测试。有了软件测试,软件开发出的软件产品才能达到用户满意的地步,他们之间是相互依赖的关系。软件测试在软件开发行业是不可或缺的存在,你在自学软件测试吗?学软件测试10本必看书你该看&#…

推荐几本软件测试方面的经典书籍

《软件测试》作者:(美)Ron Patton译者:周予滨 姚静出版社:机械工业出版社原出版社: SAMS我所见过的最好最经典的软件测试入门书,有一个别名叫“软件测试的本质”。书中没有讨论太多的软件测试理论,只包含了一部分常用的、基本的知识。从什么是软件测试、为什么要作软件…

软件测试工程师必读的十本书

软件,已成为产品集成的必需部件。 软件产品的质量,与用户生活水平正比。 软件质量相关专业,正用武之地,期大有可为。 根据个人经验,推荐软件测试相关的十本书,静待有缘人。 1、软件测试的艺术 软件测试…

学软件测试最好的几本书,这8本书能帮你很多

真的勇士, 敢于直面惨淡的 warning 、 敢于正视淋漓的 error ! 有人喜欢创造世界,他们做了开发者;有的人喜欢开发者,他们做了测试员。什么是软件测试?软件测试就是一场本该在用户面前发生的灾难提前在自己面前发生了&a…

软件测试学习书籍【附电子版】

零基础学软件测试需要读哪些书籍?软件测试经典书籍推荐什么?对于学习软件测试而言,取得一本好书做指导,那是相当的有价值,好书相当于一位好老师,带你入门,带你走进知识深处,下面小编就给大家推荐一些软件…

软件测试/自动化测试/测试开发/性能测试经典好书推荐

目录 前言 测试理论与实践 性能测试 安全测试 自动化测试 编程语言与开发技能 管理技能 前言 软件测试入行容易进阶难。从测试小白成长为测试经理、总监级别人才,要跨越长长的技术栈升级之路,挑战非常高的综合能力要求。 大牛都是相似的&#xf…

软件测试十本书

软件,已成为产品集成的必需部件。 软件产品的质量,与用户生活水平正比。 软件质量相关专业,正用武之地,期大有可为。 根据个人经验,推荐软件测试相关的十本书,静待有缘人。 (1) 软件…

软件测试 | 测试开发书单 | 测试工程师必读经典好书,你读过几本?

测试好书1080480 46.3 KB 软件测试入行容易进阶难。在持续交付体系背景下,要成为测试开发高手意味着非常系统综合的知识储备。广泛阅读经典好书是快速成长的必要方式。 霍格沃兹测试学院重点推荐几本测试经典好书以及必读清单。文末加入测试开发读书群,一…

软件测试书籍有哪些_软件测试书籍推荐

软件测试行业在国内才起步不久,很多人都是刚刚毕业就进入这个行业,或者从其他岗位转过来,对软件测试的知识和技能了解的有限,而软件测试又是一个非常重视实践经验的工作。如何在较短时间内熟悉软件测试的基础知识、并掌握一定的软…

学软件测试必看的10本书推荐给你

软件测试从字面意思大家都知道,是为软件而诞生的,没有软件开发,就没有软件测试。有了软件测试,软件开发出的软件产品才能达到用户满意的地步,他们之间是相互依赖的关系。软件测试在软件开发行业是不可或缺的存在&#…

软件测试人员必看的十本经典书籍

第一本:Google软件测试之道 《Google软件测试之道》推荐理由: 1、本书抓住了Google做测试的本质,抓住了Google测试这个时代复杂软件的精华。 2、本书描述了测试解决方案,揭示了测试架构是如何设计、实现和运行的&#…

「建议收藏」推荐给软件测试员的10本书

01、《Google软件测试之道 》 作者:James A. Whittaker 、 Jason Arbon /、Jeff Carollo。 《google软件测试之道》介绍了作者对于google测试如何继续演进的见解、google乃至整个业界的测试方向的一些预言,相信很多读者都会感受到其中的洞察力&#xf…

软件测试学习书籍8本【经典推荐】

一.《软件测试的艺术》 适合软件开发人员、IT项目经理等相关读者阅读,还可以作为高等院校计算机相关专业软件测试课程的教材或参考书。 从第1版付梓到现在已经30余年,是软件测试领域的经典著作。本书结构清晰、讲解生动活泼,简明扼要地展示了…

node_module 困境与破局

点击上方 前端Q,关注公众号 回复加群,加入前端Q技术交流群 原文链接: https://zhuanlan.zhihu.com/p/137535779 大家好,这是字节跳动的同学的一篇文章,已经发表了一年半,但每次重读时都与收获。 「目录」 1. 术语&…

带你入门nodejs第一天——node基础语法及使用

带你入门nodejs第一天——node基础语法及使用 带你入门nodejs第二天——http 模块化 npm yarm 带你入门nodejs第三天—express路由 带你学习nodejs第四天——身份认证及缓存 1 node概述 为什么要学习node.js 为什么要学习服务端的开发? 通过学习Node.js开发理解…