基于Websocket+SpringMVC4推送部标Jt808终端报警(转)
原文地址:http://www.jt808.com/?p=1263
在开发部标监控平台的时候,我们要及时的将部标终端报警推送到web界面上,以弹窗的形式提供给用户显示,要将报警显示在界面上,部标808协议文档中规定的报警类型,如下图所示:
表 18 报警标准位定义
| 
 位  | 
 定义  | 
 处理说明  | 
| 
 0  | 
 1:紧急报警,触动报警开关后触发  | 
 收到应答后清零  | 
| 
 1  | 
 1:超速报警  | 
 标志维持至报警条件解除  | 
| 
 2  | 
 1: 疲劳驾驶  | 
 标志维持至报警条件解除  | 
| 
 3  | 
 1:预警  | 
 收到应答后清零  | 
| 
 4  | 
 1:GNSS模块发生故障  | 
 标志维持至报警条件解除  | 
| 
 5  | 
 1:GNSS天线未接或被剪断  | 
 标志维持至报警条件解除  | 
| 
 6  | 
 1:GNSS天线短路  | 
 标志维持至报警条件解除  | 
| 
 7  | 
 1:终端主电源欠压  | 
 标志维持至报警条件解除  | 
| 
 8  | 
 1:终端主电源掉电  | 
 标志维持至报警条件解除  | 
| 
 9  | 
 1:终端LCD或显示器故障  | 
 标志维持至报警条件解除  | 
| 
 10  | 
 1:TTS模块故障  | 
 标志维持至报警条件解除  | 
| 
 11  | 
 1:摄像头故障  | 
 标志维持至报警条件解除  | 
从部标808协议文档中对于报警的定义可以看出,一个定位包要承载多个报警,具体对应到数据库记录,一条定位记录要对应多条报警记录,在GPS部标监控平台车辆数到达一定的规模的时候,特别是很多平台的终端在安装的过程中接线松动,造成频繁误报,报警记录就会急剧的增多,如果采用轮询的方式,客户端定时向服务器发送Ajax请求,服务器接到请求后马上返回响应信息并关闭连接。优点:后端程序编写比较容易。 缺点:请求中有大半是无用,浪费带宽和服务器资源。 只能适于小型应用。车辆规模达到一定数量的时候,数据库压力比较大,报警查询性能下降,难以及时的将报警显示在客户端的页面上。
而WebSocket是HTML5开始提供的一种浏览器与服务器间进行全双工通讯的网络技术。依靠这种技术可以实现客户端和服务器端的长连接,双向实时通信。基于事件驱动能够实现真正意义上的推送功能。在客户端与服务器端交互的web应用中,websocket最适合在高频率低延迟的场景下,进行事件的交换和处理。所以特别适合车辆终端报警信息低延迟,短消息高频率的推送场景。
各种浏览器对websocket的支持如下图所示:

具体技术的实现,可以采用spring框架,spring4.0以后加入了对websocket技术的支持,而SpringMVC框架可以完美的支持websocket, 只需要按照springmvc要求的规范开发。
在maven的pom.xml中加入websocket所依赖的jar包
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.4.0</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.4.0</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-websocket</artifactId>//version须和spring mvc的version保持一致,否则会出现问题 <version>4.0.5.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-messaging</artifactId> <version>4.0.5.RELEASE</version> </dependency>
具体实现方式如下:
1)实现WebSocketHandler接口
WebSocketHandler接口主要是用来与websocket客户端来进行交互的接口,Spring WebSocket提供了一些实现类,可以根据自己的需求进行选择与重写。
2)新建一个自己的HandShakeInterceptor类
HandShakeInterceptor是websocket握手拦截器,用于拦截websocket初始化连接的请求 。
3)配置spring.xml文件

基于Websocket+SpringMVC4推送部标Jt808终端报警(转)的更多相关文章
- node.js Websocket消息推送---GoEasy
		
Goeasy, 它是一款第三方推送服务平台,使用它的API可以轻松搞定实时推送!个人感觉goeasy推送更稳定,推送 速度快,代码简单易懂上手快 浏览器兼容性:GoEasy推送 支持websocket ...
 - C(++) Websocket消息推送---GoEasy
		
Goeasy, 它是一款第三方推送服务平台,使用它的API可以轻松搞定实时推送!个人感觉goeasy推送更稳定,推送 速度快,代码简单易懂上手快 浏览器兼容性:GoEasy推送 支持websocket ...
 - Android 高仿微信实时聊天 基于百度云推送
		
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38799363 ,本文出自:[张鸿洋的博客] 一直在仿微信界面,今天终于有幸利用百 ...
 - swoole  websocket服务推送
		
用过workerman, 两个字"好用",对于swoole最近有时间也研究研究 swoole的websocket 很好实现 如官网 https://wiki.swoole.com/ ...
 - 【WebSocket】WebSocket消息推送
		
准备使用WebSocket实现Java与Vue或者安卓间的实时通信,实现私密聊天.群聊.查询下资料备用. WebSocket客户端 websocket允许通过JavaScript建立与远程服务器的连接 ...
 - HTML5学习总结-08 WebSocket 服务器推送
		
一 WebSocket 随着互联网的发展,传统的HTTP协议已经很难满足Web应用日益复杂的需求了.近年来,随着HTML5的诞生,WebSocket协议被提出,它实现了浏览器与服务器的全双工通信,扩展 ...
 - WebSocket消息推送
		
WebSocket协议是基于TCP的一种新的网络协议,应用层,是TCP/IP协议的子集. 它实现了浏览器与服务器全双工(full-duplex)通信,客户端和服务器都可以向对方主动发送和接收数据.在J ...
 - 基于Java Mina框架的部标jt808服务器设计和开发
		
在开发部标GPS平台中,部标jt808GPS服务器是系统的核心关键,决定了部标平台的稳定性和行那个.Linux服务器是首选,为了跨平台,开发语言选择Java自不待言.需要购买jt808GPS服务器源码 ...
 - HTML5 WebSocket 实时推送信息测试demo
		
测试一下HTML5的websocket功能,实现了客户端→服务器实时推送信息到客户端,包括推送图片: websocket实现MessageInbound类 onTextMessage()/onBina ...
 
随机推荐
- 笔记本如何查看mac地址
			
最近有网友咨询他的笔记本如何查看mac地址,一般情况当我们需要用mac地址,ip地址,本地dns的时候都可以参考下面的方法 MAC地址又称为网卡的物理地址,每台电脑都有一个唯一的MAC地址,也正因 ...
 - php 将网页执行的输出写入到本地文件中
			
php -f /var/www/html/default/script/lol_score_calculate/calculate.php >>score_calcutelate.log
 - 第十五章  php时区报错  We selected the timezone 'UTC'
			
Warning: phpinfo(): It is not safe to rely on the system's timezone settings. You are *required* to ...
 - 代码规范审查 -Sonar环境搭建
			
Sonar概述 Sonar 是一个用于代码质量管理的开放平台,可以进行代码质量的持续跟踪审查,支持的语言包含C#.java.PHP.C等.可以通过UI一睹Sonar的强大之处. Sonar安装 ...
 - mysql中函数greatest 与MAX区别
			
greatest (a,b,c,d,d)max(a) 这样就能看明白了,greatest 求的是某几列的最大值,横向求最大(一行记录)max(a) 一看就明白了,是给纵向求最大(多行记录).
 - DTO的一些理解(转载)
			
1.什么是DTO DTO(Data Tansfer Object)即数据传输对象.之前不明白有些框架中为什么要专门定义DTO来绑定表现层中的数据,为什么不能直接用实体模型呢,有了DTO同时还要维护DT ...
 - 图像处理标准图像lena的故事图The Lenna Story behind image processing
			
The Lenna Story - www.lenna.org Imaging Experts Meet Lenna in Person Yes, it's true! Lenna attende ...
 - Fibre Channel和Fiber Channel
			
Fibre Channel也就是"网状通道"的意思,简称FC. 由于Fiber和Fibre只有一字之差,所以产生了很多流传的误解. FC只代表Fibre Channel,而不是 ...
 - MapReduce实战--倒排索引
			
本文地址:http://www.cnblogs.com/archimedes/p/mapreduce-inverted-index.html,转载请注明源地址. 1.倒排索引简介 倒排索引(Inver ...
 - Eclipse如何安装插件,查看已经安装的插件
			
文件-帮助-About Eclipse,然后点击Installation Details 查看Installed Software找到已安装的插件 如果要安装新的插件,点击Help,Insta ...