同步操作将从 杭电通信科协/物联网云平台管理端 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
Part.1 基于Swoole的TCP服务器
该TCP服务器用于与各设备的传感器直接交互并将得到的数据存入redis缓存数据库中,并由管理平台向用户展示。
设备登录/注销
允许用户设备向TCP服务器发送登录请求。请求格式为 {"m":"login","msg":{"id":"xxx","key":"***"}} 其中id对应的值为管理平台生成的设备ID,key对应的值为管理平台生成的设备秘钥。服务器会查询Mysql数据库判断是否能够登录。
连接保持/接收数据
由于TCP服务器采用的是与管理平台不同的连接方式(TCP服务器为TCP长连接,管理平台为HTTP)所以需要心跳包等设计来保持连接, 并且要考虑到网络状况不佳时的断开重连机制。同时服务器会接收设备发送的数据并根据数据的类型以及是否有WebHook做出相应的处理.
Redis数据库读写
设备发送给服务器的数据最终会保存到Redis数据库中并由管理平台读取展示给用户。数据读写主要要考虑到存储的类型,读写效率等硬件方面的因素。
Part.2 基于Fastadmin的管理平台
管理平台功能
管理平台允许用户创建/管理设备与传感器,获取传感器的数据并根据用户选定的类型以不同的形式向用户展示数据
主要模块
用户管理
提供用户注册,用户登录,找回密码等基本功能。
创建/管理设备与传感器
允许用户创建/管理设备和传感器。 用户可以为设备命名,在设备中创建传感器。传感器根据使用的数据类型分为数值传感器、文本传感器、开关传感器、GPS传感器和图像传感器,不同的传感器会在数据展示部分已不同的形式展示数据。 平台会为每个设备设置专有的设备ID和秘钥,该秘钥用于验证用户设备的登录、ID用于区分不同的用户设备。
展示/导出数据
平台会从Mysql数据库(暂定,之后可能会改为Redis数据库)中读取设备发送的数据并已不同的形式展示给用户。 目前允许的数据类型有 数值型,文本型,开关型,GPS型和图像型。数值型会自动生成以时间为横坐标,数值为纵坐标的折线图。GPS型会通过百度地图API生成路线图。文本型,开关型和图像型都会以表格的形式展示数据。
WebHook
用户可以在传感器中添加WebHook指向自己的服务器,平台会在接收到设备数据之后将数据转发到用户的服务器由用户来处理数据。
WebHook在整个平台中属于较为独立的部分而且其所需要的前置基础也都已经完成。WebHook的实现比较简单只需要掌握php和Mysql即可进行开发。
TCP服务器与Redis数据库的交互属于平台中较为重要的环节,并且要考虑到在多设备连接时操作数据库的效率和安全问题,所以这部分依然由林嘉琪负责。
目前管理平台获取数据的方式是从Mysql数据库中获取数据,但是由于Mysql数据库的读写速度有限,不适合做频繁的写入与读取,所以之后会将Mysql数据库改为更适合频繁读写的Redis数据库。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。