关于808部标协议项目开发到部署的心得

最近因项目要求需要对接车辆的GPS,对应的是部标808协议,刚刚接手一头雾水,于是各种网上找资料,终于弄明白了,本文不介绍具体代码,主要是讲解下创建,开发,部署的整体技术思路:

开发步骤:使用Maven构建项目 - netty编写端口,解析808协议-终端注册、终端鉴权 -保存坐标到MongoDB- 导出项目为JAR包 - 部署到Linux的服务器 - 端口开放

1.808协议编写:

       开发协议的服务需要基于socket进行编程,但是建议大家不要直接使用socket来进行编程,费事费力,直接使用Netty框架,支持阻塞IO和非阻塞式IO,简简单单几行代码就搞定网络服务端,本次808使用的是非阻塞IO  

处理流程:Netty 创建808服务和指定端口,终端注册根据服务所在IP和端口注册成功,自动发送GPS数据到服务端,数据以字节流的形式传递,详情参考808服务标准协议文档,通过对于的数据解析规则,对字节流进行解析,最后得到数据对象,并把数据对象保存到数据库,我这里用的是MongoDB的。

 

2.导出的jar包

   Maven的项目导出罐子时一定得注意要在pom.xml的配置,作用是指定罐子主入口和自动将依赖的JAR包也一起打包,参考以下代码:

<plugin>
                <artifactId> maven-assembly-plugin </ artifactId>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef> jar-with-dependencies </ descriptorRef>
                    </ descriptorRefs>
                    <archive>
                        <manifest>
                            <mainClass> cn.hylexus。 jt808.server.TCPServer </ mainClass>
                        </ manifest>
                    </ archive>
                </ configuration>
                <executions>
                    <execution>
                        <id>make-assembly </ id>
                        <phase>包</ phase>
                        <goals>
                            <goal>单个</ goal>
                        </ goals>
                    </ execution>
                </ executions>
            </ plugin>

3.上传到Linux的服务器

   导出好jar包后,在linux服务器里可以创建一个专属目录存放jar文件和日志,创建好文件夹后把jar文件上传到目录里,上传命令:rz -y -y是指替换已有文件,如果是第一次上传则不需要

 

4.执行java命令,我这里用到了第3种方式运行

   执行罐子,前提必须要在Linux的环境中安装好了JDK,执行罐子有几种方式: 

  4-1.java -jar * .jar执行java文件,当按ctrl + c或者关闭ssh弹窗时,程序运行会中断执行

   4-2.java -jar * .jar&&代表在后台运行,使用ctrl + c不会中断程序的运行,但是关闭窗口会中断程序的运行。

  4-3.nohup java -jar XXX.jar&使用这种方式运行的程序日志会输出到当前目录下的nohup.out文件,使用ctrl + c中断或者关闭窗口都不会中断程序的执行。

  4-4.nohup java -jar XXX.jar> temp.out&> temp.out的意思是将日志输出重定向到temp.out文件,使用ctrl + c中断或者关闭窗口都不会中断程序的执行。

执行jar成功之后,可以执行ps -aux命令,查看当前所有端口详情,是否包含了本次执行的jar文件端口

 

5.端口开放,因为808服务端里面创建已经指定改程序的端口,在Linux的系统中必须要开放此端口,否则终端无法注册

  端口开放命令: firewall-cmd --add-port=20048/tcp --permanent

  重启防火墙:systemctl restart firewalld  

  开放端口之后,外部的终端就可以远程注册了

 

6.等待终端注册发送数据,一旦有终端通过服务器IP和端口进行注册时,会自动解析数据

 

7.数据解析成功后,保存到MongoDB的数据库中

 

8.web项目进行展示,网页端展示我就不详细讲了,主要实现了路线跟踪,车辆定位,警报通知等功能

 

本人第一次开发这个808项目,有不足的地方还请大家指出,一起探讨一起进步。

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
JT808是中国汽车电子工业标准化技术协会制定的一种车载终端协议。该协议规范是为了促进车载终端之间的数据交互与通信而制定的。下面是对JT808部标协议规范的回答: JT808部标协议规范是国内车载终端领域的一项重要技术标准,旨在统一车载终端之间的数据格式和通信协议,实现车辆与终端之间的信息交互和远程监控。 该协议规定了车载终端和监管平台之间的通信流程和数据格式,涵盖了诸如车辆定位、报警信息、状态监测等基本功能。通过这样的协议规范,不同厂家生产的车载终端和监管平台可以实现互通,确保车辆的监控和管理能够顺利进行。 JT808部标协议规范还规定了数据传输的安全性要求,包括加密和验证机制,确保传输的数据不受篡改和泄露的风险。这对于保障车辆和终端之间的通信安全具有重要意义,可以防止恶意攻击和非法访问。 除了基本的通信需求,JT808部标协议规范还扩展了一些可选功能,例如远程控制、语音通信等。这些功能的添加使得车辆监控系统更具灵活性和扩展性,满足不同用户的需求。 总的来说,JT808部标协议规范在车载终端领域有着广泛的应用。它的制定为不同厂家之间的车载终端互联互通提供了基础,同时也促进了车辆安全和管理水平的提高。随着技术的不断发展,JT808部标协议规范也会不断完善和更新,以适应不断变化的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值