Skip to content

Tcp Server for Air. TCP-SERVER服务, 接收TCP数据包.

Notifications You must be signed in to change notification settings

air-stack/Air-Server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Air Server

TCP_SERVER服务端,监听物联网设备发送的TCP数据包,将TCP数据包编解码后通过HTTP发送到BACK端进行数据存储更新。

技术栈

Smart-Socket + SpringBoot + Http客户端

数据发送端

  1. Air-Room:通过Mocker模拟发送TCP数据

  2. Air-Iot:Stm32嵌入式设备发送WIFI数据

运行流程

  1. Air-Room:基于Air-Protocol按照协议编码,模拟生成大气监测数据,通过线程池Socket模拟发送TCP数据包到TCP_SERVER。

  2. Air-Iot:基于Air-Protocol按照协议编码,通过物联网设备采集数据,通过WIFI模块发送TCP数据包到TCP_SERVER,解码数据包并将数据通过HTTP发送到BACK服务器。

通过心跳机制监测传感器状态,若失联三分钟,则关闭死连接,收到心跳包时再连接

PROTOCOL协议编解码工具详见:[https://github.com/kevinten10/Air-Protocol]

BACK数据存储服务详见: [https://github.com/kevinten10/Air-Server]

WEB数据展示网站详见:[https://github.com/kevinten10/Air-Webapp]

数据协议

需导入Protocol协议编解码jar包 Air-Protocol

Air-Protocol.jar已经放在了项目目录下,需要将其手动导入到项目libraries

File -> Project Structure -> Libraries -> add -> java -> 选择jar包

使用

# 1. 下载项目到本地
# git clone https://github.com/kevinten10/Air-Server.git

# 2. 打开项目(推荐使用IDEA)

# 3. 启动项目

# 4. 可使用tools目录下TCP测试工具进行测试

服务器部署

  1. 打包成JAR

File -> Project Structure -> Artifacts -> Add -> JAR -> from modules with dependencies

配置“Directory for META-INF/MAINFEST.MF”,此项配置的缺省值是:..Project\src\main\java,需要改成:..Project(项目目录)

选择“Build - Build Artifacts”下的“Build”或者“Rebuild”即可生成最终的可运行的jar,在..\Project\out\artifacts\Project_jar下面找到生成的目标jar,(JAR名与项目名相同的一项)

  1. 配置JAR

打开JAR,找到META-INF/MAINFEST.MF文件,检查 "Main-Class" 配置是否正确

正确配置为 Main-Clas: com...(包名)...AirServerApplication(main函数类)

  1. 上传JAR

通过winscp工具上传jar所在文件到服务器中

运行

java -jar project.jar (即运行主JAR包)

检查是否启动成功

  1. 开启防火墙

放通9001监听端口,9003调用端口

快速部署

已将打包好的jar包放在目录下,将Air_Server_jar拷贝到服务器文件下即可,进入目录,输入

java -jar Air-Server.jar

即可运行服务

后台运行:nohup java -jar Air-Server.jar > /usr/local/air/server.out &

docker部署

docker run -d --network host -v /usr/local/air/Air_Server_jar/Air-Server.jar:/usr/local/air/Air_Server_jar/Air-Server.jar --name air-back java:8u111 java -jar /usr/local/air/Air_Server_jar/Air-Server.jar

解析

--network host :本身与宿主机共用了网络,容器中暴露端口等同于宿主机暴露端口。

-d 表示在后台启动
    
-v /usr/local/air/Air_Server_jar/Air-Server.jar:/usr/local/air/Air_Server_jar/Air-Server.jar 表示将宿主主机的jar文件,映射到容器中(分号前为宿主主机的路径,分号后为容器中的路径)

--name air-back 表示为该容器取一个全局唯一的名称,这里我取的名称为air-back

java:8u111 表示镜像文件的名称和tag

java -jar /usr/local/air/Air_Server_jar/Air-Server.jar 表示运行jar包,注意:这里的jar包为容器中的位置,是通过前面的-v属性映射的

About

Tcp Server for Air. TCP-SERVER服务, 接收TCP数据包.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages