# BlackFish-Web **Repository Path**: mengxiang375913/jfBlackFish ## Basic Information - **Project Name**: BlackFish-Web - **Description**: 基于Jfinal和win10-ui的物联网开发平台web服务端 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: web - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 5 - **Created**: 2018-07-31 - **Last Updated**: 2024-05-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 墨鱼物联网快速开发平台--Web服务端 ### 简介 ​ 墨鱼物联网快速开发平台是由web服务器,IM服务器和客户端三部分组成。 ​ 实际开发过程中,开发者根据开发文档设计控制界面,打包发送给用户,或者部署到本系统的应用商城(将来实现)向用户提供下载。用户安装设备相关的应用,并进行简单的初始化即可与客户端设备进行交互。 ### 效果展示 [b站视频地址]: https://www.bilibili.com/video/av33684202/ ### 开发环境 web服务器:jfinal+mysql+redis im服务器:t-io 客户端:python ### 系统结构 ​ 本系统由web服务器,im系统和客户端组成,通过对网关的设置可以实现简单的内网透传。系统原理和执行过程如下: 1、IM开始发送UDP广播,将自己的外网地址发送给客户端,客户端通过requests向web服务端报告,web服务器向IM发起链接请求,并将链接保存在Map中,Map键是设备的Key。 2、客户端向web服务器请求初始化文本,web服务器将属于设备bag和module生成初始化文件:init.xml 3、客户端根据初始化文件生成模板类,并开启接听和应答两个进程 4、web服务器将用户提交的请求通过模块对应的设备找到key,并找到IM链接,向IM发送消息,告诉客户端有请求 5、客户端得到请求后,如果module是num不为0的那么放入循环队列,每次应答(包含发送心跳包)都会执行循环队列 6、web服务端在IM里的名字为:admin,所以,任何客户端在im中的名字都不得为admin 7、web服务器获得IM发来的客户端消息,将其放入其对应的loads文件夹下生成的json文件,等待前端请求。 ### 最后 ​ 项目开发周期过长,期间有一次较大规模的修改,对代码的影响还是存在,局部功能的实现还需要大量的优化。先给自己定个小目标