• 基于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要求的规范开发。

          mavenpom.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文件

     

  • 相关阅读:
    Linux入门
    Python接入支付宝进行PC端支付
    DRF之注册器响应器分页器
    Sencha Touch 实战开发培训 视频教程 第二期 第七节
    Sencha Touch 实战开发培训 视频教程 第二期 第六节
    Sencha Touch 实战开发培训 视频教程 第二期 第五节
    sencha touch 百度地图扩展(2014-6-24)(废弃 仅参考)
    Sencha Touch 实战开发培训 视频教程 第二期 第四节
    Sencha Touch 实战开发培训 视频教程 第二期 第三节
    sencha touch 扩展官方NavigationView 灵活添加按钮组,导航栏,自由隐藏返回按钮(2014-5-15)
  • 原文地址:https://www.cnblogs.com/shamo89/p/9853148.html
Copyright © 2020-2023  润新知