﻿<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>GPS软件平台开发技术博客 &#187; Netty</title>
	<atom:link href="http://www.jt808.com/?feed=rss2&#038;tag=netty" rel="self" type="application/rss+xml" />
	<link>http://www.jt808.com</link>
	<description>帮助IT团队快速构建符合部标的GPS和视频平台(2379423771@qq.com)</description>
	<lastBuildDate>Sun, 03 Nov 2024 04:30:16 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.1</generator>
		<item>
		<title>基于Redis构建10万+终端级的高性能部标JT808协议的Gps网关服务器</title>
		<link>http://www.jt808.com/?p=1282</link>
		<comments>http://www.jt808.com/?p=1282#comments</comments>
		<pubDate>Wed, 18 Oct 2017 14:02:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[部标808]]></category>
		<category><![CDATA[部标监控平台]]></category>
		<category><![CDATA[JT/T 808]]></category>
		<category><![CDATA[jt808]]></category>
		<category><![CDATA[jt808协议]]></category>
		<category><![CDATA[Netty]]></category>
		<category><![CDATA[Redis]]></category>
		<category><![CDATA[部标平台]]></category>

		<guid isPermaLink="false">http://www.jt808.com/?p=1282</guid>
		<description><![CDATA[&#160; &#160; &#160; &#160;在开发一个大规模的部标GPS监控平台的时候，就算我们花费 [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp; &nbsp; &nbsp; &nbsp;在开发一个大规模的部标GPS监控平台的时候，就算我们花费再多的时间设计和规划，我们也并不能准确的预测出自己未来的车载终端接入量有多大，而且一开始就为了我们宏伟的设计蓝图，投入大规模的服务器硬件设备和网络带宽，这会带来极高的成本投入，也会在早期造成大马拉小车，空耗+复杂度过高。所以大多数的平台一定是从一两台服务器搭建运营环境，&nbsp;随着车载终端量级越来越大，并发越来越高，业务模式也越来越复杂，我们需要将程序解构，从一个模块拆出多个模块，从单机运行变成多台服务器分布式部署，从单进程变成多服务模式。所以我们设计的时候，就必须要构建这种可扩展的由1变成N的架构，必须要有一个可扩展的高可用的基于部标jt808协议的服务器。</p>
<p>&nbsp; &nbsp; &nbsp; 我们这里所说的10万+终端接入，首先是10万+在线的，另外并不是简单的接入，如果做一个基于Netty的网关,只负责协议解析并将数据通过消息队列转发出去,&nbsp;这样的网关,随便一个程序员熟练使用Netty框架都可以轻松做到,&nbsp;因为一个进程的Netty本身支持几万个连接时没有任何问题的,&nbsp;而加上一个&nbsp; Rocket&nbsp;MQ&nbsp;或者样<span style="color: rgb(204, 0, 0); font-family: arial; font-size: 13px;">Kafka,&nbsp;这样的网关只是一堆开源框架堆砌起来的Toy,&nbsp;它</span>的性能测试报告既没有意义也是没有任何技术含量的,&nbsp;我们不需要实验室的数据,&nbsp;我们能够给实际要购买的客户,实际演示真实客户的GPS平台.</p>
<p>&nbsp; &nbsp; &nbsp;什么很多人使用Netty和Kafka,&nbsp;程序一样容易出问题呢,&nbsp;因为我们后续肯定还要保证实时数据推送、海量数据入库和查询、报警电子围栏分析和复杂的业务逻辑计算都能稳定的运行,这不仅需要扎实的编程能力,也需要长期运营的磨合,往往需要很多次的版本迭代。在这种场景下，通过长期经验,&nbsp;我们觉得单台服务器或者单进程的一个808网关服务器是很难支撑到的。我们需要保证的是从前到后一系列的稳定运行指标：</p>
<p>&nbsp; &nbsp; &nbsp; 1）&nbsp;接入：10万+终端接入不出现排队和无法接入现象，由于一般的基于JT808协议的终端设备，都是基于TCP长连接通信，UDP的很少，10万+长连接的维持对服务器的压力可想而知非常大。一般的服务器带宽不够的时候，或者由于服务器处理速度慢，造成连接无法及时归还连接池，造成服务器接入的时候，就卡壳。我们一般采用Netty来做为JT808服务器的NIO&nbsp;Socket服务器框架，而Netty在开发的时候就要求在Handler中，获取的连接数据的时候，必须不能做耗时的操作。这就要求我们必须要异步处理。</p>
<p>&nbsp; &nbsp; &nbsp; 2)&nbsp; &nbsp;实时性 ： 虽然终端接入了，但是后续的逻辑处理模块如果处理速度过慢，即使是异步的，也会造成数据在内存中排队等候处理的情况，这样当数据传递到web用户面前的时候，就是滞后的，不满足用户对实时性的要求。如报警弹窗，位置显示等都是对实时性有要求的功能。</p>
<p>&nbsp; &nbsp; &nbsp; 3)&nbsp; &nbsp;数据入库：并发的连接，必然会造成对数据库并发请求加大，要求及时入库的GPS数据也是海量的，一分钟将有几十万级别的GPS数据等待入库，而且根据jt808协议，一条0&#215;0200指令的定位数据包，经过服务器解析和逻辑计算后，又衍生出报警记录，油量温度记录，里程统计记录等等，数据量也非常的大。虽然并发是提高入库效率的手段，但是并发过高，超过数据库服务器承载的能力，又会造成数据库服务器卡壳，进而造成连锁反应，web用户经常会看到页面打开过慢，数据显示不出来，其实不是web服务器的问题，是数据库的压力太大，难以及时响应。所以一个能承受10万+终端的部标808服务器，并不简单的是要求代码写的好性能高，前期数据库的设计和规划能力和实际的承载能力也必须要跟得上，这就是一条流水线，那个环节掉链子，都是多米诺效应的崩溃。</p>
<p>&nbsp; &nbsp; &nbsp; 4)&nbsp; 查询,&nbsp;<span style="color:#f00;">有长期运营经验的程序员都知道, 90%以上的服务器问题,都是由于数据库压力大,&nbsp;造成整个程序卡壳,&nbsp;进而造成程序队列堵塞,&nbsp;内存增长来不及释放进而崩溃,&nbsp;</span> 所以成熟的程序员,&nbsp;总是非常注意数据库优化的问题,&nbsp;以及程序中对于数据库的冲击的处理有着丰富的手段,&nbsp; 没有实战经验的程序员,&nbsp;即使在优秀的代码基础上做二次开发,&nbsp;也会非常容易造成性能问题,&nbsp;因为他们没有技术积累,&nbsp;又缺乏耐心阅读代码,&nbsp;总是第一时间去想做局部的修改, 完成任务放在最前面, 而把阅读消化代码,&nbsp;整体提高自己技术水平放在后面.</p>
<p>&nbsp; &nbsp; &nbsp;5)&nbsp;实际的业务场景处理,&nbsp;压力是比较难模拟的,&nbsp;这也是很多人做了压力测试,&nbsp;上线后,也一样出现各种各样的性能问题,&nbsp;这就需要我们本着务实的精神,&nbsp;在实际的运营过程中,&nbsp;做后续的优化.&nbsp;而不是纸上谈兵,&nbsp;在实验室里面写出来,&nbsp;做下压力测试报告,&nbsp;就昭告天下了.&nbsp;</p>
<p>&nbsp; &nbsp; &nbsp; 在实际的运营中，单台的阿里云服务器并不贵，带宽的运营成本要高于服务器的成本，所以我们在设计架构的时候，必须要保证部标808服务器是可以像刀片一样是可以插拔的，通过分散压力，来保证系统的稳定运行。当某一个服务器模块停用或者上线，是不需要整个平台调整或者改造开发的，web平台是无感的。</p>
<p>&nbsp; &nbsp; &nbsp; 所以我们不能让Web平台直接面对808服务器，而是在808服务和Web平台之间，增加一个Redis缓存服务器，808服务器的实时GPS数据直接push到Redis缓存中，web平台获取实时数据的时候，不是通过RPC调用808服务器的实时服务，而是通过Redis的API，直接从Redis缓存中获取。利用Redis的Pipeline模式，可以批量获取所需的实时数据。</p>
<p>&nbsp; &nbsp;&nbsp;<strong style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: Georgia, &quot;Times New Roman&quot;, Times, sans-serif; font-size: 14px; line-height: 25.2px;"><span style="margin: 0px; padding: 0px; line-height: 1.8; text-decoration-line: underline;">需要JT 808协议 服务器端源码不含web平台(java和C#两版本可选其一)+808模拟测试终端工具&nbsp;</span></strong><strong data-mce-style="line-height: 1.5;" style="margin: 0px; padding: 0px; color: rgb(0, 0, 0); font-family: verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 1.5;">+压力测试工具 &nbsp;</strong><strong style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: Georgia, &quot;Times New Roman&quot;, Times, sans-serif; font-size: 14px; line-height: 25.2px;"><span style="margin: 0px; padding: 0px; line-height: 1.8; text-decoration-line: underline;">的请联系我购买1200元<u style="margin: 0px; padding: 0px;">(</u></span><u style="margin: 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: rgb(0, 0, 0); font-family: &quot;lucida Grande&quot;, Verdana, &quot;Microsoft YaHei&quot;; font-size: 12px; line-height: 18px;">2379423771@qq.com</span><span style="margin: 0px; padding: 0px; line-height: 1.8;">)</span></u></strong><strong style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: Georgia, &quot;Times New Roman&quot;, Times, sans-serif; font-size: 14px; line-height: 25.2px;">,</strong>&nbsp;参见文章：<strong><u><a href="http://www.jt808.com/?p=971" rel="bookmark" style="font-family: Georgia, Arial, Helvetica, sans-serif; font-size: 2em; text-transform: capitalize; margin: 0px; padding: 0px; color: rgb(38, 38, 38); text-decoration-line: none;">基于Java Netty框架构建高性能的Jt808协议的GPS服务器</a></u></strong></p>
<p>&nbsp; &nbsp; &nbsp;<img alt="基于Redis的高性能部标808服务器" height="673" src="http://www.jt808.com/wp-content/uploads/hpredis.PNG" width="829" /></p>
<p>&nbsp; &nbsp; &nbsp;在Web平台给终端下发指令的时候，如何知道终端是在那一台服务器上，这个是通过在Redis中缓存一个Sim卡号和部标808服务器Id的映射关系表，当终端接入的某台服务器的时候，808服务器会自动在Redis上更新映射表，这样web平台下发指令的时候，就知道通过那个部标808服务器下发指令。</p>
<p>&nbsp; &nbsp; &nbsp;由于Redis有消息队列的功能，对于报警推送等实时性要求高的场合，当部标808服务器解析报警后，可以直接推送给Redis队列，然后web平台通过订阅消息队列，获取报警消息，然后再经由Websocket推送给前端平台。可以看出整个报警的推送路径发生了重大改变，不再是从数据库读取出来，而是通过典型的分布式内存，不断的推送。不单提高了报警响应的速度，更重要的是，大部分的GPS平台，报警误报频繁，频繁的插入数据库，对数据库压力非常的大。</p>
<p>&nbsp; &nbsp;<img alt="基于redis的部标808报警推送" height="300" src="http://www.jt808.com/wp-content/uploads/redismq.jpg" width="600" /></p>
<p> (23187)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jt808.com/?feed=rss2&#038;p=1282</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>基于部标jt/t809协议和Java Netty框架构建Gps位置监控平台</title>
		<link>http://www.jt808.com/?p=1116</link>
		<comments>http://www.jt808.com/?p=1116#comments</comments>
		<pubDate>Sun, 05 Mar 2017 03:15:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[部标监控平台]]></category>
		<category><![CDATA[部标过检与认证]]></category>
		<category><![CDATA[jt/t809]]></category>
		<category><![CDATA[jt808]]></category>
		<category><![CDATA[Netty]]></category>
		<category><![CDATA[交通部796]]></category>
		<category><![CDATA[部标809]]></category>
		<category><![CDATA[部标平台]]></category>

		<guid isPermaLink="false">http://www.jt808.com/?p=1116</guid>
		<description><![CDATA[现在地方上由于运输车辆的GPS数据都分散在地方上已有的各种企业平台上面，不利于大数据的分析和智能应用，而开发智 [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="text-indent:21.0pt;line-height:150%"><span style="mso-bidi-font-size:10.5pt;line-height:150%;font-family:宋体;mso-ascii-font-family:<br />
Calibri;mso-hansi-font-family:Calibri">现在地方上由于运输车辆的</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;line-height:150%">GPS</span><span style="mso-bidi-font-size:10.5pt;line-height:150%;font-family:宋体;mso-ascii-font-family:<br />
Calibri;mso-hansi-font-family:Calibri">数据都分散在地方上已有的各种企业平台上面，不利于大数据的分析和智能应用，而开发智能的基于大数据的</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;line-height:150%">Gps</span><span style="mso-bidi-font-size:10.5pt;line-height:150%;font-family:宋体;mso-ascii-font-family:<br />
Calibri;mso-hansi-font-family:Calibri">监控平台，往往需要和各种第三方的部标</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;line-height:150%">GPS</span><span style="mso-bidi-font-size:10.5pt;line-height:150%;font-family:宋体;mso-ascii-font-family:<br />
Calibri;mso-hansi-font-family:Calibri">监控平台对接，获取到第三方的企业平台转发的数据，然后进行大数据的分析和应用，经过分析、统计和梳理后的数据，在web页面上进行各种复杂的地图、报表统计等功能的展现。</span></p>
<p class="MsoNormal" style="text-indent:21.0pt;line-height:150%"><span style="mso-bidi-font-size:10.5pt;line-height:150%;font-family:宋体;mso-ascii-font-family:<br />
Calibri;mso-hansi-font-family:Calibri">由于各地的企业平台基本都是符合交通部部标标准的，都具备</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;line-height:150%">809</span><span style="mso-bidi-font-size:10.5pt;line-height:150%;font-family:宋体;mso-ascii-font-family:<br />
Calibri;mso-hansi-font-family:Calibri">协议的转发功能，要和这些企业平台对接，不需要再一个一个的敲定接口标准了，只需要开发出</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;line-height:150%">809</span><span style="mso-bidi-font-size:10.5pt;line-height:150%;font-family:宋体;mso-ascii-font-family:<br />
Calibri;mso-hansi-font-family:Calibri">协议的网关应用，接入各地分散的企业平台的接入请求，就可以收集到车辆的位置数据了。</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;line-height:150%"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:21.0pt;line-height:150%"><span lang="EN-US" style="mso-bidi-font-size:10.5pt;line-height:150%;font-family:&quot;Times New Roman&quot;;<br />
mso-bidi-language:AR">JT809</span><span style="mso-bidi-font-size:10.5pt;<br />
line-height:150%;font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;<br />
mso-hansi-font-family:&quot;Times New Roman&quot;;mso-bidi-font-family:宋体;mso-bidi-language:<br />
AR">网关数据接口服务系统，是基于</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;<br />
line-height:150%;font-family:&quot;Times New Roman&quot;;mso-bidi-language:AR">TCP</span><span style="mso-bidi-font-size:10.5pt;line-height:150%;font-family:宋体;mso-ascii-font-family:<br />
&quot;Times New Roman&quot;;mso-hansi-font-family:&quot;Times New Roman&quot;;mso-bidi-font-family:<br />
宋体;mso-bidi-language:AR">协议开发的部标</span><span lang="EN-US" style="mso-bidi-font-size:<br />
10.5pt;line-height:150%;font-family:&quot;Times New Roman&quot;;mso-bidi-language:AR">809</span><span style="mso-bidi-font-size:10.5pt;line-height:150%;font-family:宋体;mso-ascii-font-family:<br />
&quot;Times New Roman&quot;;mso-hansi-font-family:&quot;Times New Roman&quot;;mso-bidi-font-family:<br />
宋体;mso-bidi-language:AR">协议服务软件系统。系统利用高并发的Netty通信框架，采用通信双方约定的</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;line-height:150%;font-family:&quot;Times New Roman&quot;;<br />
mso-bidi-language:AR">809</span><span style="mso-bidi-font-size:10.5pt;<br />
line-height:150%;font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;<br />
mso-hansi-font-family:&quot;Times New Roman&quot;;mso-bidi-font-family:宋体;mso-bidi-language:<br />
AR">协议规范，完成对协议数据的解析、拦截、数据入库、报警分析和转发的工作。并实现协议数据与上级平台、下级平台（多方企业运营服务平台）之间的数据通信桥梁。从而实现多部标企业平台车辆动态数据通过拦截、转发、存储的功能推送至自有企业平台。</span></p>
<p class="MsoNormal" style="text-indent:21.0pt;line-height:150%">&nbsp;</p>
<h2 style="margin: 0px; padding: 0px 0px 3px; font-size: 2em; color: rgb(92, 121, 144); text-shadow: rgb(255, 255, 255) 0px 1px 0px, rgb(190, 190, 190) 0px -1px 3px; font-family: Georgia, Arial, Helvetica, sans-serif; text-transform: capitalize;"><a href="http://www.jt808.com/?p=1677" rel="bookmark" style="margin: 0px; padding: 0px; color: rgb(213, 78, 33); text-decoration-line: none;">部标809协议2019版本与2011版本的区别</a></h2>
<p class="MsoNormal" style="text-indent:21.0pt;line-height:150%"><span lang="EN-US" style="mso-bidi-font-size:10.5pt;line-height:150%;font-family:&quot;Times New Roman&quot;;<br />
mso-bidi-font-family:宋体;mso-bidi-language:AR"><o:p></o:p></span></p>
<p><span style="color:#a52a2a;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;如需购买平台源码，请联系邮箱: 2379423771@qq.com</span></p>
<p class="MsoNormal" style="text-indent:21.0pt;line-height:150%"><span style="color:#00f;"><span style="font-size:18px;"><strong><span style="mso-bidi-font-size:10.5pt;line-height:150%;font-family:宋体;mso-ascii-font-family:<br />
&quot;Times New Roman&quot;;mso-hansi-font-family:&quot;Times New Roman&quot;;mso-bidi-font-family:<br />
宋体;mso-bidi-language:AR">基于809的web平台，相对于一般的企业平台，有不同的复杂性：</span></strong></span></span></p>
<p class="MsoNormal" style="text-indent:21.0pt;line-height:150%"><span style="mso-bidi-font-size:10.5pt;line-height:150%;font-family:宋体;mso-ascii-font-family:<br />
&quot;Times New Roman&quot;;mso-hansi-font-family:&quot;Times New Roman&quot;;mso-bidi-font-family:<br />
宋体;mso-bidi-language:AR">1.由于多个第三方的企业平台的</span><span lang="EN-US" style="mso-bidi-font-size:<br />
10.5pt;line-height:150%;font-family:&quot;Times New Roman&quot;;mso-bidi-font-family:<br />
宋体;mso-bidi-language:AR">gps</span><span style="mso-bidi-font-size:10.5pt;<br />
line-height:150%;font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;<br />
mso-hansi-font-family:&quot;Times New Roman&quot;;mso-bidi-font-family:宋体;mso-bidi-language:<br />
AR">数据同时接入，相对于一般的</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;<br />
line-height:150%;font-family:&quot;Times New Roman&quot;;mso-bidi-font-family:宋体;<br />
mso-bidi-language:AR">gps</span><span style="mso-bidi-font-size:10.5pt;<br />
line-height:150%;font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;<br />
mso-hansi-font-family:&quot;Times New Roman&quot;;mso-bidi-font-family:宋体;mso-bidi-language:<br />
AR">平台，数据体量比较大，接入的车辆数多在几万台车甚至十几万台，对于网关的接入、分析、处理性能要求比较高。</span></p>
<p class="MsoNormal" style="text-indent:21.0pt;line-height:150%"><img alt="jt809" height="359" src="http://www.jt808.com/wp-content/uploads/jt809.PNG" style="text-indent: 21px;" width="526" /></p>
<p class="MsoNormal" style="text-indent:21.0pt;line-height:150%">2.连接维护的复杂性，由于809协议设计者设计了双链路的通信连接机制，主链路和从链路，还有数据加密的机制，加大了通信连接的复杂性，数据在传输过程中的断线重连，心跳机制是必须要考虑的，否则一旦数据中断了，第二天才发现，就会丢失大量的定位数据。</p>
<p class="MsoNormal" style="line-height:150%"><span style="mso-bidi-font-size:<br />
10.5pt;line-height:150%;font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;<br />
mso-hansi-font-family:&quot;Times New Roman&quot;;mso-bidi-font-family:宋体;mso-bidi-language:<br />
AR">&nbsp; &nbsp;针对以上特点，jt809平台的架构设计需要做到一下几点：</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;<br />
line-height:150%;font-family:&quot;Times New Roman&quot;;mso-bidi-font-family:宋体;<br />
mso-bidi-language:AR"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:18.0pt;text-indent:-18.0pt;line-height:<br />
150%;mso-list:l0 level1 lfo1;tab-stops:list 18.0pt"><!--[if !supportLists]--><span lang="EN-US" style="mso-bidi-font-size:10.5pt;line-height:150%;font-family:&quot;Times New Roman&quot;;<br />
mso-fareast-font-family:&quot;Times New Roman&quot;;mso-bidi-language:AR">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1.<span style="font-stretch: normal; font-size: 7pt; line-height: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><!--[endif]--><span style="mso-bidi-font-size:10.5pt;<br />
line-height:150%;font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;<br />
mso-hansi-font-family:&quot;Times New Roman&quot;;mso-bidi-font-family:宋体;mso-bidi-language:<br />
AR">实时性</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;line-height:<br />
150%;font-family:&quot;Times New Roman&quot;;mso-bidi-font-family:宋体;mso-bidi-language:<br />
AR"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:15.75pt;mso-char-indent-count:1.5;<br />
line-height:150%"><span style="mso-bidi-font-size:10.5pt;line-height:150%;<br />
font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;mso-hansi-font-family:<br />
&quot;Times New Roman&quot;;mso-bidi-font-family:宋体;mso-bidi-language:AR">&nbsp;网关接收到实时的定位数据后，实时位置数据和经过分析后的最新报警直接在内存中推送给</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;line-height:150%;font-family:&quot;Times New Roman&quot;;<br />
mso-bidi-font-family:宋体;mso-bidi-language:AR">web</span><span style="mso-bidi-font-size:<br />
10.5pt;line-height:150%;font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;<br />
mso-hansi-font-family:&quot;Times New Roman&quot;;mso-bidi-font-family:宋体;mso-bidi-language:<br />
AR">服务器，然后由</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;line-height:<br />
150%;font-family:&quot;Times New Roman&quot;;mso-bidi-font-family:宋体;mso-bidi-language:<br />
AR">web</span><span style="mso-bidi-font-size:10.5pt;line-height:150%;<br />
font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;mso-hansi-font-family:<br />
&quot;Times New Roman&quot;;mso-bidi-font-family:宋体;mso-bidi-language:AR">服务器推送到</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;line-height:150%;font-family:&quot;Times New Roman&quot;;<br />
mso-bidi-font-family:宋体;mso-bidi-language:AR">web</span><span style="mso-bidi-font-size:<br />
10.5pt;line-height:150%;font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;<br />
mso-hansi-font-family:&quot;Times New Roman&quot;;mso-bidi-font-family:宋体;mso-bidi-language:<br />
AR">页面上显示。</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;line-height:<br />
150%;font-family:&quot;Times New Roman&quot;;mso-bidi-font-family:宋体;mso-bidi-language:<br />
AR"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:18.0pt;text-indent:-18.0pt;line-height:<br />
150%;mso-list:l0 level1 lfo1;tab-stops:list 18.0pt"><!--[if !supportLists]--><span lang="EN-US" style="mso-bidi-font-size:10.5pt;line-height:150%;font-family:&quot;Times New Roman&quot;;<br />
mso-fareast-font-family:&quot;Times New Roman&quot;;mso-bidi-language:AR">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 2.<span style="font-stretch: normal; font-size: 7pt; line-height: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><!--[endif]--><span style="mso-bidi-font-size:10.5pt;<br />
line-height:150%;font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;<br />
mso-hansi-font-family:&quot;Times New Roman&quot;;mso-bidi-font-family:宋体;mso-bidi-language:<br />
AR">数据的分析</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;line-height:<br />
150%;font-family:&quot;Times New Roman&quot;;mso-bidi-font-family:宋体;mso-bidi-language:<br />
AR"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:15.75pt;mso-char-indent-count:1.5;<br />
line-height:150%"><span style="mso-bidi-font-size:10.5pt;line-height:150%;<br />
font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;mso-hansi-font-family:<br />
&quot;Times New Roman&quot;;mso-bidi-font-family:宋体;mso-bidi-language:AR">&nbsp;海量的数据进入内存当中，等待分析和入库，所以分析和入库的速度必须要快，另外操作必须是异步的，不能堵塞通信连接和数据接收。</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;line-height:150%;font-family:&quot;Times New Roman&quot;;<br />
mso-bidi-font-family:宋体;mso-bidi-language:AR"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:15.75pt;mso-char-indent-count:1.5;<br />
line-height:150%"><span style="mso-bidi-font-size:10.5pt;line-height:150%;<br />
font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;mso-hansi-font-family:<br />
&quot;Times New Roman&quot;;mso-bidi-font-family:宋体;mso-bidi-language:AR">&nbsp;基本的分析工作有：上线下线分析、各种终端报警分析、平台报警分析等工作；</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;line-height:150%;font-family:&quot;Times New Roman&quot;;<br />
mso-bidi-font-family:宋体;mso-bidi-language:AR"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:15.75pt;mso-char-indent-count:1.5;<br />
line-height:150%"><span style="mso-bidi-font-size:10.5pt;line-height:150%;<br />
font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;mso-hansi-font-family:<br />
&quot;Times New Roman&quot;;mso-bidi-font-family:宋体;mso-bidi-language:AR">&nbsp;基于业务智能分析工作有：位置和运输业务结合的智能分析工作等；</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;line-height:150%;font-family:&quot;Times New Roman&quot;;<br />
mso-bidi-font-family:宋体;mso-bidi-language:AR"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:15.75pt;mso-char-indent-count:1.5;<br />
line-height:150%"><span style="mso-bidi-font-size:10.5pt;line-height:150%;<br />
font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;mso-hansi-font-family:<br />
&quot;Times New Roman&quot;;mso-bidi-font-family:宋体;mso-bidi-language:AR">&nbsp;统计工作有：里程油量统计，上线率统计，其他结合业务的统计工作等；</span><span style="mso-bidi-font-size:10.5pt;line-height:150%;font-family:&quot;Times New Roman&quot;;<br />
mso-bidi-font-family:宋体;mso-bidi-language:AR"> <span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="margin-left:18.0pt;text-indent:-18.0pt;line-height:<br />
150%;mso-list:l0 level1 lfo1;tab-stops:list 18.0pt"><!--[if !supportLists]--><span lang="EN-US" style="mso-bidi-font-size:10.5pt;line-height:150%;font-family:&quot;Times New Roman&quot;;<br />
mso-fareast-font-family:&quot;Times New Roman&quot;;mso-bidi-language:AR">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 3.<span style="font-stretch: normal; font-size: 7pt; line-height: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><!--[endif]--><span style="mso-bidi-font-size:10.5pt;<br />
line-height:150%;font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;<br />
mso-hansi-font-family:&quot;Times New Roman&quot;;mso-bidi-font-family:宋体;mso-bidi-language:<br />
AR">存储和备份</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;line-height:<br />
150%;font-family:&quot;Times New Roman&quot;;mso-bidi-font-family:宋体;mso-bidi-language:<br />
AR"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:15.75pt;mso-char-indent-count:1.5;<br />
line-height:150%"><span style="mso-bidi-font-size:10.5pt;line-height:150%;<br />
font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;mso-hansi-font-family:<br />
&quot;Times New Roman&quot;;mso-bidi-font-family:宋体;mso-bidi-language:AR">&nbsp;由于数据体量比较大，每天的定位数据记录都在百万级别以上，所以在系统运行前，存储和备份的规划工作必须要做在前面，否则后面数据库体积越来越大，难以维护和备份，另外数据库压力大，速度越来越慢也会影响</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;line-height:150%;font-family:&quot;Times New Roman&quot;;<br />
mso-bidi-font-family:宋体;mso-bidi-language:AR">web</span><span style="mso-bidi-font-size:<br />
10.5pt;line-height:150%;font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;<br />
mso-hansi-font-family:&quot;Times New Roman&quot;;mso-bidi-font-family:宋体;mso-bidi-language:<br />
AR">平台的正常运行。</span><span style="line-height: 150%; text-indent: 15.75pt; font-family: 宋体;">&nbsp;存储和备份规划，影响着入库模块的设计以及</span><span lang="EN-US" style="line-height: 150%; text-indent: 15.75pt; font-family: &quot;Times New Roman&quot;;">web</span><span style="line-height: 150%; text-indent: 15.75pt; font-family: 宋体;">查询模块的设计，必须要做在最前面。对于海量的数据必须要分库分表设计。</span><strong style="color: rgb(51, 51, 51); font-family: Georgia, &quot;Times New Roman&quot;, Times, sans-serif; font-size: 14px; line-height: 25px; margin: 0px; padding: 0px;">历史数据和报警数据分表设计如下图所示：</strong></p>
<p class="MsoNormal" style="text-indent:15.75pt;mso-char-indent-count:1.5;<br />
line-height:150%">&nbsp;</p>
<p style="padding: 0px; color: rgb(51, 51, 51); line-height: 25px; font-family: Georgia, &quot;Times New Roman&quot;, Times, sans-serif; font-size: 14px; margin: 10px auto !important;"><img alt="Gps历史轨迹数据分库分表设计" height="232" src="http://www.jt808.com/wp-content/uploads/gpshisdata.PNG" style="margin: 0px; padding: 0px; border: none;" width="661" /></p>
<p class="MsoNormal" style="text-indent:15.75pt;mso-char-indent-count:1.5;<br />
line-height:150%">&nbsp;</p>
<p class="MsoNormal" style="text-indent:15.75pt;mso-char-indent-count:1.5;<br />
line-height:150%"><a href="http://www.jt808.com/?p=480"><span style="color:#00f;"><span style="font-size:18px;"><strong>809网关服务器监控界面(界面采用swing开发，参见809转发服务器博客文章)</strong></span></span></a></p>
<p style="margin: 10px auto; padding: 0px; color: rgb(51, 51, 51); line-height: 25px; font-family: Georgia, &quot;Times New Roman&quot;, Times, sans-serif; font-size: 14px;">&nbsp; &nbsp; 1）C#版的809GPS服务器开发-》<a href="http://www.jt808.com/?p=386" rel="bookmark" style="margin: 0px; padding: 0px; color: rgb(61, 129, 238); text-decoration-line: none; border-bottom: 1px dashed rgb(223, 223, 223); outline: none;">基于JT/T809-2011的(已过检)GPS平台数据交换及转发服务器</a></p>
<p style="margin: 10px auto; padding: 0px; color: rgb(51, 51, 51); line-height: 25px; font-family: Georgia, &quot;Times New Roman&quot;, Times, sans-serif; font-size: 14px;">&nbsp; &nbsp; 2）Java版的809GPS服务器开发-》<strong style="margin: 0px; padding: 0px;"><a href="http://www.jt808.com/?p=480" style="margin: 0px; padding: 0px; color: rgb(61, 129, 238); text-decoration-line: none; border-bottom: 1px dashed rgb(223, 223, 223); outline: none;" target="_blank">基于Java 通信框架的JT/T809转发服务器设计</a></strong></p>
<p style="margin: 10px auto; padding: 0px; color: rgb(51, 51, 51); line-height: 25px; font-family: Georgia, &quot;Times New Roman&quot;, Times, sans-serif; font-size: 14px;">&nbsp;</p>
<p class="MsoNormal" style="text-indent:15.75pt;mso-char-indent-count:1.5;<br />
line-height:150%"><img alt="809数据网关" height="578" src="http://www.jt808.com/wp-content/uploads/809govplatform(1).png" width="1051" /></p>
<p class="MsoNormal" style="text-indent:15.75pt;mso-char-indent-count:1.5;<br />
line-height:150%"><span style="color:#00f;"><span style="font-size:18px;"><strong>web系统 对809服务器连接和日志状态的监控</strong></span></span></p>
<p class="MsoNormal" style="text-indent:15.75pt;mso-char-indent-count:1.5;<br />
line-height:150%"><img alt="部标809监控" height="570" src="http://www.jt808.com/wp-content/uploads/web809.PNG" width="1072" /></p>
<p class="MsoNormal" style="text-indent:15.75pt;mso-char-indent-count:1.5;<br />
line-height:150%"><span style="color:#00f;"><span style="font-size:18px;"><strong>web界面上809消息通知和报警消息通知</strong></span></span></p>
<p class="MsoNormal" style="text-indent:15.75pt;mso-char-indent-count:1.5;<br />
line-height:150%"><img alt="809报警消息通知" height="262" src="http://www.jt808.com/wp-content/uploads/809notify.png" width="514" /></p>
<p class="MsoNormal" style="text-indent:15.75pt;mso-char-indent-count:1.5;<br />
line-height:150%"><img alt="809报警处理" height="387" src="http://www.jt808.com/wp-content/uploads/809alarm.png" width="716" /></p>
<p class="MsoNormal" style="text-indent:21.0pt;line-height:150%"><span lang="EN-US" style="mso-bidi-font-size:10.5pt;line-height:150%;font-family:&quot;Times New Roman&quot;;<br />
mso-bidi-font-family:宋体;mso-bidi-language:AR"><o:p></o:p></span></p>
<p> (20231)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jt808.com/?feed=rss2&#038;p=1116</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>基于Java Netty框架构建高性能的jt808协议的GPS服务器</title>
		<link>http://www.jt808.com/?p=971</link>
		<comments>http://www.jt808.com/?p=971#comments</comments>
		<pubDate>Thu, 15 Sep 2016 13:28:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[GPS系统]]></category>
		<category><![CDATA[部标808]]></category>
		<category><![CDATA[部标监控平台]]></category>
		<category><![CDATA[JT/T 808]]></category>
		<category><![CDATA[jt808]]></category>
		<category><![CDATA[jt808协议]]></category>
		<category><![CDATA[jt808服务器]]></category>
		<category><![CDATA[Netty]]></category>
		<category><![CDATA[交通部部标]]></category>

		<guid isPermaLink="false">http://www.jt808.com/?p=971</guid>
		<description><![CDATA[使用Java语言开发一个高质量和高性能的jt808 协议的GPS通信服务器，并不是一件简单容易的事情，开发出来 [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal"><span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;<br />
mso-hansi-font-family:&quot;Times New Roman&quot;">使用Java语言开发一个高质量和高性能的</span><span lang="EN-US">jt808 </span><span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;<br />
mso-hansi-font-family:&quot;Times New Roman&quot;">协议的</span><span lang="EN-US">GPS</span><span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;mso-hansi-font-family:<br />
&quot;Times New Roman&quot;">通信服务器，并不是一件简单容易的事情，开发出来一段程序和能够承受数十万台车载接入是两码事，</span><span style="font-family: 宋体; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">除去开发部标jt</span><span lang="EN-US" style="font-family: Arial; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">808</span><span style="font-family: 宋体; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">协议的固有复杂性和几个月长周期的协议</span><span lang="EN-US" style="font-family: Arial; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">Bug</span><span style="font-family: 宋体; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">调试，作为大批量</span><span lang="EN-US" style="font-family: Arial; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">794</span><span style="font-family: 宋体; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">车载终端接入的服务端，需要能够处理网络的闪断、客户端的重连、安全认证和消息的编解码、半包处理等。如果没有足够的网络编程经验积累和深入了解部标jt</span><span lang="EN-US" style="font-family: Arial; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">808</span><span style="font-family: 宋体; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">协议文档，自研的</span><span lang="EN-US" style="font-family: Arial; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">GPS</span><span style="font-family: 宋体; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">服务器往往需要半年甚至数年的时间才能最终稳定下来，这种成本即便对一个大公司而言也是个严重的挑战。</span><span lang="EN-US" style="font-family: Arial; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:18px;"><strong><span style="font-family: 宋体; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">1）我们在开发部标协议的</span><span lang="EN-US" style="font-family: Arial; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">GPS</span><span style="font-family: 宋体; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">服务器，需要解决以下几个问题：</span></strong></span><span lang="EN-US" style="font-family: Arial; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:18.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo2;<br />
tab-stops:list 18.0pt"><!--[if !supportLists]--><span lang="EN-US" style="mso-bidi-font-size:<br />
10.5pt;font-family:Arial;mso-fareast-font-family:Arial;color:black">1.<span style="font-stretch: normal; font-size: 7pt; font-family: &quot;Times New Roman&quot;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><!--[endif]--><span style="font-family: 宋体; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">通信服务器固有的连接管理，能够处理网络的闪断、客户端的重连、安全认证和消息的编解码、半包处理；</span><span lang="EN-US" style="font-family: Arial; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:18.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo2;<br />
tab-stops:list 18.0pt"><!--[if !supportLists]--><span lang="EN-US" style="mso-bidi-font-size:<br />
10.5pt;font-family:Arial;mso-fareast-font-family:Arial;color:black">2.<span style="font-stretch: normal; font-size: 7pt; font-family: &quot;Times New Roman&quot;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><!--[endif]--><span style="font-family: 宋体; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">海量终端接入的高并发性能；</span><span lang="EN-US" style="font-family: Arial; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:18.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo2;<br />
tab-stops:list 18.0pt"><!--[if !supportLists]--><span lang="EN-US" style="mso-bidi-font-size:<br />
10.5pt;font-family:Arial;mso-fareast-font-family:Arial;color:black">3.<span style="font-stretch: normal; font-size: 7pt; font-family: &quot;Times New Roman&quot;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><!--[endif]--><span style="font-family: 宋体; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">良好的内存管理，车载终端的连接本事是基于</span><span lang="EN-US" style="font-family: Arial; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">GPRS</span><span style="font-family: 宋体; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">的无线连接，车辆在野外高速移动过程中，信号处于不稳定状态，虽然是基于长连接，但是这种连接不断的中断和接入，服务器在处理终端接入，数据解析，报警分析，批量入库的时候，能够内存分配合理，不会造成内存泄漏，在百万次的调用中不会造成内存累计上升；</span></p>
<p class="MsoNormal" style="margin-left:18.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo2;<br />
tab-stops:list 18.0pt"><span style="font-family: 宋体; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><img alt="高性能的部标808GPS服务器的三个主题" height="427" src="http://www.jt808.com/wp-content/uploads/high performance three theme.png" width="440" /></span></p>
<p class="MsoNormal"><strong><span style="font-size:18px;"><span style="font-family: 宋体; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">2）要开发一个高性能的</span><span lang="EN-US" style="font-family: Arial; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">GPS</span><span style="font-family: 宋体; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">服务器的三个主题：</span></span></strong><span lang="EN-US" style="font-family: Arial; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: Arial; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">1) </span><span style="font-family: 宋体; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">传输：用什么样的通道将数据发送给对方，</span><span lang="EN-US" style="font-family: Arial; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">BIO</span><span style="font-family: 宋体; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">、</span><span lang="EN-US" style="font-family: Arial; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">NIO</span><span style="font-family: 宋体; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">或者</span><span lang="EN-US" style="font-family: Arial; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">AIO</span><span style="font-family: 宋体; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">，</span><span lang="EN-US" style="font-family: Arial; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">IO</span><span style="font-family: 宋体; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">模型在很大程度上决定了框架的性能。</span><span style="color: black; font-family: Arial;">&nbsp;</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: Arial; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">2) </span><span style="font-family: 宋体; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">协议：采用什么样的通信协议，</span><span lang="EN-US" style="font-family: Arial; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">HTTP</span><span style="font-family: 宋体; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">或者内部私有协议。协议的选择不同，性能模型也不同。相比于公有协议，内部私有协议的性能通常可以被设计的更优。</span><span style="color: black; font-family: Arial;">&nbsp;</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: Arial; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">3) </span><span style="font-family: 宋体; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">线程：数据报如何读取？读取之后的编解码在哪个线程进行，编解码后的消息如何派发，</span><span lang="EN-US" style="font-family: Arial; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">Reactor</span><span style="font-family: 宋体; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">线程模型的不同，对性能的影响也非常大。</span><span lang="EN-US" style="font-family: Arial; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="line-height: 18.9pt; font-family: Arial; color: black;">Netty</span><span style="line-height: 18.9pt; font-family: 宋体; color: black;">是业界最流行的</span><span lang="EN-US" style="line-height: 18.9pt; font-family: Arial; color: black;">NIO</span><span style="line-height: 18.9pt; font-family: 宋体; color: black;">框架，可以很好的解决上面三个问题，它的可靠性、高性能和可扩展性已经得到了上百上千的商用项目验证，相对于.NET中的基于完成端口的通信框架，它要优越的多，它的优点总结如下：</span></p>
<p align="left" class="MsoNormal" style="margin: 3pt 0cm 3pt 39pt; text-indent: -18pt; line-height: 18.9pt; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><!--[if !supportLists]--><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:Arial;mso-fareast-font-family:<br />
Arial;color:black;mso-font-kerning:0pt">1.<span style="font-stretch: normal; font-size: 7pt; line-height: normal; font-family: &quot;Times New Roman&quot;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><!--[endif]--><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:Arial;color:black;<br />
mso-font-kerning:0pt">API</span><span style="mso-bidi-font-size:10.5pt;<br />
font-family:宋体;mso-ascii-font-family:Arial;mso-hansi-font-family:Arial;<br />
mso-bidi-font-family:Arial;color:black;mso-font-kerning:0pt">使用简单，开发门槛低；</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:Arial;color:black;<br />
mso-font-kerning:0pt"><o:p></o:p></span></p>
<p align="left" class="MsoNormal" style="margin: 3pt 0cm 3pt 39pt; text-indent: -18pt; line-height: 18.9pt; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><!--[if !supportLists]--><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:Arial;mso-fareast-font-family:<br />
Arial;color:black;mso-font-kerning:0pt">2.<span style="font-stretch: normal; font-size: 7pt; line-height: normal; font-family: &quot;Times New Roman&quot;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><!--[endif]--><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Arial;<br />
mso-hansi-font-family:Arial;mso-bidi-font-family:Arial;color:black;mso-font-kerning:<br />
0pt">功能强大，内聚了很多实用的功能，简化用户的开发；</span><span lang="EN-US" style="mso-bidi-font-size:<br />
10.5pt;font-family:Arial;color:black;mso-font-kerning:0pt"><o:p></o:p></span></p>
<p align="left" class="MsoNormal" style="margin: 3pt 0cm 3pt 39pt; text-indent: -18pt; line-height: 18.9pt; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><!--[if !supportLists]--><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:Arial;mso-fareast-font-family:<br />
Arial;color:black;mso-font-kerning:0pt">3.<span style="font-stretch: normal; font-size: 7pt; line-height: normal; font-family: &quot;Times New Roman&quot;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><!--[endif]--><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Arial;<br />
mso-hansi-font-family:Arial;mso-bidi-font-family:Arial;color:black;mso-font-kerning:<br />
0pt">定制性好，通过</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;<br />
font-family:Arial;color:black;mso-font-kerning:0pt">ChannelPipeline</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Arial;<br />
mso-hansi-font-family:Arial;mso-bidi-font-family:Arial;color:black;mso-font-kerning:<br />
0pt">机制可以灵活的进行功能定制和扩展；</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;<br />
font-family:Arial;color:black;mso-font-kerning:0pt"><o:p></o:p></span></p>
<p align="left" class="MsoNormal" style="margin: 3pt 0cm 3pt 39pt; text-indent: -18pt; line-height: 18.9pt; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><!--[if !supportLists]--><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:Arial;mso-fareast-font-family:<br />
Arial;color:black;mso-font-kerning:0pt">4.<span style="font-stretch: normal; font-size: 7pt; line-height: normal; font-family: &quot;Times New Roman&quot;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><!--[endif]--><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Arial;<br />
mso-hansi-font-family:Arial;mso-bidi-font-family:Arial;color:black;mso-font-kerning:<br />
0pt">性能高；</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:<br />
Arial;color:black;mso-font-kerning:0pt"><o:p></o:p></span></p>
<p align="left" class="MsoNormal" style="margin: 3pt 0cm 3pt 39pt; text-indent: -18pt; line-height: 18.9pt; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><!--[if !supportLists]--><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:Arial;mso-fareast-font-family:<br />
Arial;color:black;mso-font-kerning:0pt">5.<span style="font-stretch: normal; font-size: 7pt; line-height: normal; font-family: &quot;Times New Roman&quot;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><!--[endif]--><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Arial;<br />
mso-hansi-font-family:Arial;mso-bidi-font-family:Arial;color:black;mso-font-kerning:<br />
0pt">成熟稳定，社区活跃，</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;<br />
font-family:Arial;color:black;mso-font-kerning:0pt">Bug</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Arial;<br />
mso-hansi-font-family:Arial;mso-bidi-font-family:Arial;color:black;mso-font-kerning:<br />
0pt">的修复周期比较短，新功能不断的被加入，用户可以体验到更多、更实用的功能。</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:Arial;color:black;mso-font-kerning:<br />
0pt"><o:p></o:p></span></p>
<p align="left" class="MsoNormal" style="margin: 3pt 0cm 3pt 39pt; text-indent: -18pt; line-height: 18.9pt; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><!--[if !supportLists]--><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:Arial;mso-fareast-font-family:<br />
Arial;color:black;mso-font-kerning:0pt">6.<span style="font-stretch: normal; font-size: 7pt; line-height: normal; font-family: &quot;Times New Roman&quot;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><!--[endif]--><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Arial;<br />
mso-hansi-font-family:Arial;mso-bidi-font-family:Arial;color:black;mso-font-kerning:<br />
0pt">经历了大规模不同行业的商用考验，架构质量得到了充分的验证。</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: Arial; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">Netty</span><span style="font-family: 宋体; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">为了向使用者屏蔽</span><span lang="EN-US" style="font-family: Arial; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">NIO</span><span style="font-family: 宋体; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">通信的底层细节，在和用户交互的边界做了封装，目的就是为了减少用户开发工作量，降低开发难度。</span><span lang="EN-US" style="font-family: Arial; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">ServerBootstrap</span><span style="font-family: 宋体; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">是</span><span lang="EN-US" style="font-family: Arial; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">Socket</span><span style="font-family: 宋体; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">服务端的启动辅助类，用户通过</span><span lang="EN-US" style="font-family: Arial; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">ServerBootstrap</span><span style="font-family: 宋体; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">可以方便的创建</span><span lang="EN-US" style="font-family: Arial; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">Netty</span><span style="font-family: 宋体; color: black; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">的服务端。</span></p>
<p class="MsoNormal"><strong style="font-size: 18px;">3）编码器和解码器的设计</strong></p>
<p class="MsoNormal"><span style="font-family: 宋体;">对于jt</span><span lang="EN-US">808</span><span style="font-family: 宋体;">协议的解析处理，需要编写自定义的解码器了，目前</span><span lang="EN-US">Netty</span><span style="font-family: 宋体;">提供了多个基础编码器可以供开发者进行继承和拓展，开发的时候，需要了解这几个解码器的主要作用，主要用于那些通信数据传输的场景。</span></p>
<p class="MsoNormal"><span style="font-family: 宋体; color: black;">为了降低用户的开发难度，</span><span lang="EN-US" style="font-family: Arial; color: black;">Netty</span><span style="font-family: 宋体; color: black;">对常用的功能和</span><span lang="EN-US" style="font-family: Arial; color: black;">API</span><span style="font-family: 宋体; color: black;">做了装饰，以屏蔽底层的实现细节。编解码功能的定制，对于熟悉</span><span lang="EN-US" style="font-family: Arial; color: black;">Netty</span><span style="font-family: 宋体; color: black;">底层实现的开发者而言，直接基于</span><span lang="EN-US" style="font-family: Arial; color: black;">ChannelHandler</span><span style="font-family: 宋体; color: black;">扩展开发，难度并不是很大。但是对于大多数初学者或者不愿意去了解底层实现细节的用户，需要提供给他们更简单的类库和</span><span lang="EN-US" style="font-family: Arial; color: black;">API</span><span style="font-family: 宋体; color: black;">，而不是</span><span lang="EN-US" style="font-family: Arial; color: black;">ChannelHandler</span><span style="font-family: 宋体; color: black;">。</span><span lang="EN-US" style="font-family: Arial; color: black;"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: Arial; color: black;">Netty</span><span style="font-family: 宋体; color: black;">在这方面做得非常出色，针对编解码功能，它既提供了通用的编解码框架供用户扩展，又提供了常用的编解码类库供用户直接使用。在保证定制扩展性的基础之上，尽量降低用户的开发工作量和开发门槛，提升开发效率。</span><span lang="EN-US" style="font-family: Arial; color: black;"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family: 宋体; color: black;">通常我们也习惯将编码（</span><span lang="EN-US" style="font-family: Arial; color: black;">Encode</span><span style="font-family: 宋体; color: black;">）称为序列化（</span><span lang="EN-US" style="font-family: Arial; color: black;">serialization</span><span style="font-family: 宋体; color: black;">），它将对象序列化为字节数组，用于网络传输、数据持久化或者其它用途。</span><span lang="EN-US" style="font-family: Arial; color: black;"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family: 宋体; color: black;">反之，解码（</span><span lang="EN-US" style="font-family: Arial; color: black;">Decode</span><span style="font-family: 宋体; color: black;">）</span><span lang="EN-US" style="font-family: Arial; color: black;">/</span><span style="font-family: 宋体; color: black;">反序列化（</span><span lang="EN-US" style="font-family: Arial; color: black;">deserialization</span><span style="font-family: 宋体; color: black;">）把从网络、磁盘等读取的字节数组还原成原始对象（通常是原始对象的拷贝），以方便后续的业务逻辑操作。</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: Arial; color: black;">Netty</span><span style="font-family: 宋体; color: black;">预置的编解码功能列表如下：</span><span lang="EN-US" style="font-family: Arial; color: black;">base64</span><span style="font-family: 宋体; color: black;">、</span><span lang="EN-US" style="font-family: Arial; color: black;">Protobuf</span><span style="font-family: 宋体; color: black;">、</span><span lang="EN-US" style="font-family: Arial; color: black;">JBoss Marshalling</span><span style="font-family: 宋体; color: black;">、</span><span lang="EN-US" style="font-family: Arial; color: black;">spdy</span><span style="font-family: 宋体; color: black;">等。</span></p>
<p class="MsoNormal"><span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;<br />
mso-hansi-font-family:&quot;Times New Roman&quot;">在</span><span lang="EN-US">GPS</span><span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;mso-hansi-font-family:<br />
&quot;Times New Roman&quot;">行业当中，对于终端通信协议的设计有多种：</span></p>
<p class="MsoNormal"><span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;<br />
mso-hansi-font-family:&quot;Times New Roman&quot;">1）基于字符串设计的方式，这种方式就是终端发送一个</span><span lang="EN-US">ASCII</span><span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;<br />
mso-hansi-font-family:&quot;Times New Roman&quot;">字符串，然后服务器获取后基于约定的分隔符分割为一个数组，再依次从数组中获取对应下标的数据，这种方式通常是深圳小的硬件公司的技术水平较低的开发团队喜欢采用，这种方式容易理解，但传输字节较多，效率较低，比较占用流量，不适用于基于流量套餐的无线卡传输。</span></p>
<p class="MsoNormal"><span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;<br />
mso-hansi-font-family:&quot;Times New Roman&quot;">2）基于定长协议的传输。</span></p>
<p class="MsoNormal"><span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;<br />
mso-hansi-font-family:&quot;Times New Roman&quot;">①　消息定长，例如每个报文的大小为固定长度</span><span lang="EN-US">200</span><span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;<br />
mso-hansi-font-family:&quot;Times New Roman&quot;">字节，如果不够空位补空格。</span> <span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;mso-hansi-font-family:<br />
&quot;Times New Roman&quot;">②　在包尾增加回车换行符进行分割，例如</span><span lang="EN-US">FTP</span><span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;mso-hansi-font-family:<br />
&quot;Times New Roman&quot;">协议。</span><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;<br />
mso-hansi-font-family:&quot;Times New Roman&quot;">③　将消息分为消息头和消息体，消息头中包含表示消息总长度（或者消息体总体长度）</span> <span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;mso-hansi-font-family:<br />
&quot;Times New Roman&quot;">的字段，通常涉及思路为消息头的第一个字段使用</span><span lang="EN-US">init32</span><span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;mso-hansi-font-family:<br />
&quot;Times New Roman&quot;">来表示消息的总长度。</span><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;<br />
mso-hansi-font-family:&quot;Times New Roman&quot;">④　更复杂的应用层协议，例如部标808协议</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">部标协议数据包设计的特点：</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">1) 基于分隔符，包头和包围用</span><span lang="EN-US">0x7E</span><span style="font-family: 宋体;">来区分一个完整的数据包；</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">2) 动态包头，不想其他协议在设计的时候，包头长度都是固定长度，而</span><span lang="EN-US">808</span><span style="font-family: 宋体;">协议的包头长度是不固定的；</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">3) 包体是动态长度，长度从包头中读取。</span></p>
<p class="MsoNormal">&nbsp;解码器就是要根据协议设计的数据包的规则，来对字节流进行解析，解码成完整的数据包。Netty提供了一下几种基础的解码器提供给我们，供继承或直接使用：</p>
<p class="MsoNormal"><span lang="EN-US">1）LineBasedFrameDecoder</span><span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;mso-hansi-font-family:<br />
&quot;Times New Roman&quot;">的工作原理是它依次便利</span><span lang="EN-US">ByteBuf</span><span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;mso-hansi-font-family:<br />
&quot;Times New Roman&quot;">中的可读字节，判断看是否有&ldquo;</span><span lang="EN-US">\n</span><span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;mso-hansi-font-family:<br />
&quot;Times New Roman&quot;">&rdquo;或者&ldquo;</span><span lang="EN-US">\r\n</span><span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;mso-hansi-font-family:<br />
&quot;Times New Roman&quot;">&rdquo;，如果有就以此位置为结束位置，从可读索引到结束位置区间的字节就组成了一行。他是以换行符为结束标志的解码器，支持携带结束符或者不携带结束符两种解码方式，同时支持配置当行的最大长度。如果连续读取带最大长度后任然没有发现换行符，就会抛出异常，同时忽略掉之前读到的异常码流。</span></p>
<p class="MsoNormal"><span lang="EN-US">2）StringDecoder</span><span style="font-family:<br />
宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;mso-hansi-font-family:&quot;Times New Roman&quot;">的功能非常简单，就是将接收到的对象转换成字符串，然后继续调用后面的</span><span lang="EN-US">handler</span><span style="font-family:宋体;mso-ascii-font-family:<br />
&quot;Times New Roman&quot;;mso-hansi-font-family:&quot;Times New Roman&quot;">。</span><span lang="EN-US">LineBasedFrameDecoder+StringDecoder</span><span style="font-family:<br />
宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;mso-hansi-font-family:&quot;Times New Roman&quot;">组合就是按行切换的文本解码器，它被设计用来支持</span><span lang="EN-US">TCP</span><span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;<br />
mso-hansi-font-family:&quot;Times New Roman&quot;">的粘包和拆包。</span><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US">3）DelimiterBasedFrameDecoder</span><span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;mso-hansi-font-family:<br />
&quot;Times New Roman&quot;">特殊符号解码器，其已经过滤掉了分隔符。</span></p>
<p class="MsoNormal"><span lang="EN-US">4）FixedLengthFrameDecoder</span><span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;mso-hansi-font-family:<br />
&quot;Times New Roman&quot;">固定长度解码器，它能够按照指定的长度对消息进行自动解码。利用</span><span lang="EN-US">FixedLengthFrameDecoder</span><span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;mso-hansi-font-family:<br />
&quot;Times New Roman&quot;">解码器无论一次接受到多少数据报，它都会按照构造函数中设置的固定长度进行解码，如果是半包消息，</span><span lang="EN-US">FixedLengthFrameDecoder</span><span style="font-family:宋体;<br />
mso-ascii-font-family:&quot;Times New Roman&quot;;mso-hansi-font-family:&quot;Times New Roman&quot;">会缓存半包消息并等待下个包到达后进行拼包，直到取到一个完整的包。</span></p>
<p class="MsoNormal"><strong><span style="font-size:18px;">4）基于Netty开发一个部标808协议的服务器，具体的步骤如下：</span></strong></p>
<p class="MsoNormal">1）我们使用Netty要做的工作就是编写编码器和解码器，然后按照Netty的要求来编写调用，最后得到一个完整的jt808协议的数据包。</p>
<p class="MsoNormal">2）按照数据处理链条，分工职责，<span style="font-size: 9px; color: rgb(51, 51, 51); font-family: Georgia, &quot;Times New Roman&quot;, Times, sans-serif; line-height: 25px;">为了提高终端接入能力和数据分析、入库能力，将终端消息的处理分成独立的五级处理模块，每个处理模块都是异步独立的，每个模块内都含有独立的处理队列，互不影响，提高数据的吞吐量和系统的响应能力。</span></p>
<p style="padding: 0px; color: rgb(51, 51, 51); font-family: Georgia, &quot;Times New Roman&quot;, Times, sans-serif; font-size: 14px; line-height: 25px; margin: 10px auto !important;"><span style="font-size: 9px;">1）第一级：实时数据解析入库，入库能力决定了客户端所看到的实时数据是否延迟；</span></p>
<p style="padding: 0px; color: rgb(51, 51, 51); font-family: Georgia, &quot;Times New Roman&quot;, Times, sans-serif; font-size: 14px; line-height: 25px; margin: 10px auto !important;"><span style="font-size:9px;">2）第二级：报警分析并入库（包括32种jt808协议规定的报警、停车报警和路线偏移报警)，报警分析只有快速分析才能快速的推送到前端客户端；</span></p>
<p style="padding: 0px; color: rgb(51, 51, 51); font-family: Georgia, &quot;Times New Roman&quot;, Times, sans-serif; font-size: 14px; line-height: 25px; margin: 10px auto !important;"><span style="font-size:9px;">3) &nbsp;第三级：消息应答和指令下发，应答可以有一定的延迟，而不影响整个系统性能。</span></p>
<p style="padding: 0px; color: rgb(51, 51, 51); font-family: Georgia, &quot;Times New Roman&quot;, Times, sans-serif; font-size: 14px; line-height: 25px; margin: 10px auto !important;"><span style="font-size:9px;">4）第四级：报表统计，由于油量统计、里程统计、上线率统计，需要定时扫描数据库，生成每个时段的数据统计提供给报表查询使用.</span></p>
<p style="padding: 0px; color: rgb(51, 51, 51); font-family: Georgia, &quot;Times New Roman&quot;, Times, sans-serif; font-size: 14px; line-height: 25px; margin: 10px auto !important;"><span style="font-size:9px;">5）第五级：日志记录和显示</span></p>
<p style="padding: 0px; color: rgb(51, 51, 51); font-family: Georgia, &quot;Times New Roman&quot;, Times, sans-serif; font-size: 14px; line-height: 25px; margin: 10px auto !important;">由于netty和Mina都能非常好的和spring容器集成在一起，引入spring框架，基于面向接口编程，系统可以同时支持netty和mina两种通信框架，用户可以根据自己的环境，通过配置决定是用mina或者是netty。</p>
<p style="padding: 0px; color: rgb(51, 51, 51); font-family: Georgia, &quot;Times New Roman&quot;, Times, sans-serif; font-size: 14px; line-height: 25px; margin: 10px auto !important;">基于IDEA&nbsp;Maven管理。</p>
<p style="padding: 0px; color: rgb(51, 51, 51); font-family: Georgia, &quot;Times New Roman&quot;, Times, sans-serif; font-size: 14px; line-height: 25px; margin: 10px auto !important;"><img alt="部标808服务器" height="770" src="http://www.jt808.com/wp-content/uploads/808server(1).jpg" width="1403" /></p>
<p style="padding: 0px; color: rgb(51, 51, 51); font-family: Georgia, &quot;Times New Roman&quot;, Times, sans-serif; font-size: 14px; line-height: 25px; margin: 10px auto !important;"><img alt="基于netty和mina的部标808gps通信服务器" height="939" src="http://www.jt808.com/wp-content/uploads/nettymina.PNG" width="350" /></p>
<p style="padding: 0px; color: rgb(51, 51, 51); font-family: Georgia, &quot;Times New Roman&quot;, Times, sans-serif; font-size: 14px; line-height: 25px; margin: 10px auto !important;"><strong><span style="font-size:18px;">5）连接管理和日志报文监控</span></strong></p>
<p style="padding: 0px; color: rgb(51, 51, 51); font-family: Georgia, &quot;Times New Roman&quot;, Times, sans-serif; font-size: 14px; line-height: 25px; margin: 10px auto !important;">在windows系统，可以运行swing界面进行监控，如果运行在阿里云的linux系统上，可以直接编写java shell脚本，基于后台服务运行，通过java 命令来调用当前的连接，日志监控，主要依赖于log文件。</p>
<p style="padding: 0px; color: rgb(51, 51, 51); font-family: Georgia, &quot;Times New Roman&quot;, Times, sans-serif; font-size: 14px; line-height: 25px; margin: 10px auto !important;"><img alt="部标808gps服务器主界面" src="http://www.jt808.com/wp-content/uploads/808gpsserverUI.PNG" /></p>
<p style="padding: 0px; color: rgb(51, 51, 51); font-family: Georgia, &quot;Times New Roman&quot;, Times, sans-serif; font-size: 14px; line-height: 25px; margin: 10px auto !important;">6) jt808系统源码易于和第三方系统如PHP平台进行集成，提供了接口和清晰的数据库文档。</p>
<p class="MsoNormal"><img src="http://www.jt808.com/wp-content/uploads/808809server(1).png" /></p>
<p class="MsoNormal">jt808服务器代码都是经过众多客户使用检验过的千锤百炼的成熟的版本，协议解析、命令下发、报警解析、数据库入库、数据统计、压力测试等各方面都考虑的非常充分完善，808协议全协议栈的实现，拿到手后，直接就可以使用了，带有库表文档和字段说明。</p>
<p class="MsoNormal"><strong style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: Georgia, &quot;Times New Roman&quot;, Times, sans-serif; font-size: 14px; line-height: 25.2px;"><span style="margin: 0px; padding: 0px; line-height: 1.8; text-decoration: underline;">需要JT 808协议 服务器端源码不含web平台(java和C#两版本可选其一)+808模拟测试终端工具&nbsp;</span></strong><strong data-mce-style="line-height: 1.5;" style="color: rgb(0, 0, 0); font-family: verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 1.5;">+压力测试工具 &nbsp;</strong><strong style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: Georgia, &quot;Times New Roman&quot;, Times, sans-serif; font-size: 14px; line-height: 25.2px;"><span style="margin: 0px; padding: 0px; line-height: 1.8; text-decoration: underline;">的请联系我购买1200元<u style="margin: 0px; padding: 0px;">(</u></span><u style="margin: 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: rgb(0, 0, 0); font-family: &quot;lucida Grande&quot;, Verdana, &quot;Microsoft YaHei&quot;; font-size: 12px; line-height: 18px;">2379423771@qq.com</span><span style="margin: 0px; padding: 0px; line-height: 1.8;">)</span></u></strong><strong style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: Georgia, &quot;Times New Roman&quot;, Times, sans-serif; font-size: 14px; line-height: 25.2px;">,</strong><span style="color: rgb(51, 51, 51); font-family: Georgia, &quot;Times New Roman&quot;, Times, sans-serif; font-size: 14px; line-height: 25.2px;">&nbsp;Java Mina框架版本参见:</span><a href="http://www.jt808.com/?p=495" style="margin: 0px; padding: 0px; color: rgb(0, 94, 172); text-decoration: none; border-bottom-width: 1px; border-bottom-style: dotted; border-bottom-color: rgb(223, 223, 223); font-family: Georgia, &quot;Times New Roman&quot;, Times, sans-serif; font-size: 14px; line-height: 25.2px;">基于Java Mina框架的部标GPS服务器</a></p>
<p class="MsoNormal"><strong><span style="font-size:16px;">808服务器主要用的库表：<span style="font-family: Calibri;">&nbsp;</span></span></strong></p>
<table align="center" style="border-collapse:collapse;width:144.7500pt;margin-left:140.7000pt;mso-padding-alt:0.7500pt 0.7500pt 0.7500pt 0.7500pt ;">
<tbody>
<tr style="height:14.1500pt;">
<td style="width:144.7500pt;padding:0.7500pt 0.7500pt 0.7500pt 0.7500pt ;border-left:1.0000pt solid windowtext;mso-border-left-alt:0.5000pt solid windowtext;border-right:1.0000pt solid windowtext;mso-border-right-alt:0.5000pt solid windowtext;border-top:1.0000pt solid windowtext;mso-border-top-alt:0.5000pt solid windowtext;border-bottom:1.0000pt solid windowtext;mso-border-bottom-alt:0.5000pt solid windowtext;" valign="bottom" width="193">
<p class="MsoNormal" style="vertical-align: bottom;"><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;">部门表</span><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;"><o:p></o:p></span></p>
</td>
</tr>
<tr style="height:14.1500pt;">
<td style="width:144.7500pt;padding:0.7500pt 0.7500pt 0.7500pt 0.7500pt ;border-left:1.0000pt solid windowtext;mso-border-left-alt:0.5000pt solid windowtext;border-right:1.0000pt solid windowtext;mso-border-right-alt:0.5000pt solid windowtext;border-top:none;;mso-border-top-alt:0.5000pt solid windowtext;border-bottom:1.0000pt solid windowtext;mso-border-bottom-alt:0.5000pt solid windowtext;" valign="bottom" width="193">
<p class="MsoNormal" style="vertical-align: bottom;"><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;">车辆表</span><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;"><o:p></o:p></span></p>
</td>
</tr>
<tr style="height:14.1500pt;">
<td style="width:144.7500pt;padding:0.7500pt 0.7500pt 0.7500pt 0.7500pt ;border-left:1.0000pt solid windowtext;mso-border-left-alt:0.5000pt solid windowtext;border-right:1.0000pt solid windowtext;mso-border-right-alt:0.5000pt solid windowtext;border-top:none;;mso-border-top-alt:0.5000pt solid windowtext;border-bottom:1.0000pt solid windowtext;mso-border-bottom-alt:0.5000pt solid windowtext;" valign="bottom" width="193">
<p class="MsoNormal" style="vertical-align: bottom;"><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;">终端表</span><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;"><o:p></o:p></span></p>
</td>
</tr>
<tr style="height:14.1500pt;">
<td style="width:144.7500pt;padding:0.7500pt 0.7500pt 0.7500pt 0.7500pt ;border-left:1.0000pt solid windowtext;mso-border-left-alt:0.5000pt solid windowtext;border-right:1.0000pt solid windowtext;mso-border-right-alt:0.5000pt solid windowtext;border-top:none;;mso-border-top-alt:0.5000pt solid windowtext;border-bottom:1.0000pt solid windowtext;mso-border-bottom-alt:0.5000pt solid windowtext;" valign="bottom" width="193">
<p class="MsoNormal" style="vertical-align: bottom;"><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;">实时表</span><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;"><o:p></o:p></span></p>
</td>
</tr>
<tr style="height:14.1500pt;">
<td style="width:144.7500pt;padding:0.7500pt 0.7500pt 0.7500pt 0.7500pt ;border-left:1.0000pt solid windowtext;mso-border-left-alt:0.5000pt solid windowtext;border-right:1.0000pt solid windowtext;mso-border-right-alt:0.5000pt solid windowtext;border-top:none;;mso-border-top-alt:0.5000pt solid windowtext;border-bottom:1.0000pt solid windowtext;mso-border-bottom-alt:0.5000pt solid windowtext;" valign="bottom" width="193">
<p class="MsoNormal" style="vertical-align: bottom;"><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;">历史轨迹表</span><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;"><o:p></o:p></span></p>
</td>
</tr>
<tr style="height:14.1500pt;">
<td style="width:144.7500pt;padding:0.7500pt 0.7500pt 0.7500pt 0.7500pt ;border-left:1.0000pt solid windowtext;mso-border-left-alt:0.5000pt solid windowtext;border-right:1.0000pt solid windowtext;mso-border-right-alt:0.5000pt solid windowtext;border-top:none;;mso-border-top-alt:0.5000pt solid windowtext;border-bottom:1.0000pt solid windowtext;mso-border-bottom-alt:0.5000pt solid windowtext;" valign="bottom" width="193">
<p class="MsoNormal" style="vertical-align: bottom;"><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;">驾驶员表</span><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;"><o:p></o:p></span></p>
</td>
</tr>
<tr style="height:14.1500pt;">
<td style="width:144.7500pt;padding:0.7500pt 0.7500pt 0.7500pt 0.7500pt ;border-left:1.0000pt solid windowtext;mso-border-left-alt:0.5000pt solid windowtext;border-right:1.0000pt solid windowtext;mso-border-right-alt:0.5000pt solid windowtext;border-top:none;;mso-border-top-alt:0.5000pt solid windowtext;border-bottom:1.0000pt solid windowtext;mso-border-bottom-alt:0.5000pt solid windowtext;" valign="bottom" width="193">
<p class="MsoNormal" style="vertical-align: bottom;"><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;">电子运单表</span><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;"><o:p></o:p></span></p>
</td>
</tr>
<tr style="height:14.1500pt;">
<td style="width:144.7500pt;padding:0.7500pt 0.7500pt 0.7500pt 0.7500pt ;border-left:1.0000pt solid windowtext;mso-border-left-alt:0.5000pt solid windowtext;border-right:1.0000pt solid windowtext;mso-border-right-alt:0.5000pt solid windowtext;border-top:none;;mso-border-top-alt:0.5000pt solid windowtext;border-bottom:1.0000pt solid windowtext;mso-border-bottom-alt:0.5000pt solid windowtext;" valign="bottom" width="193">
<p class="MsoNormal" style="vertical-align: bottom;"><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;">报警统计报表</span><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;"><o:p></o:p></span></p>
</td>
</tr>
<tr style="height:14.1500pt;">
<td style="width:144.7500pt;padding:0.7500pt 0.7500pt 0.7500pt 0.7500pt ;border-left:1.0000pt solid windowtext;mso-border-left-alt:0.5000pt solid windowtext;border-right:1.0000pt solid windowtext;mso-border-right-alt:0.5000pt solid windowtext;border-top:none;;mso-border-top-alt:0.5000pt solid windowtext;border-bottom:1.0000pt solid windowtext;mso-border-bottom-alt:0.5000pt solid windowtext;" valign="bottom" width="193">
<p class="MsoNormal" style="vertical-align: bottom;"><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;">报警推送表</span><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;"><o:p></o:p></span></p>
</td>
</tr>
<tr style="height:14.1500pt;">
<td style="width:144.7500pt;padding:0.7500pt 0.7500pt 0.7500pt 0.7500pt ;border-left:1.0000pt solid windowtext;mso-border-left-alt:0.5000pt solid windowtext;border-right:1.0000pt solid windowtext;mso-border-right-alt:0.5000pt solid windowtext;border-top:none;;mso-border-top-alt:0.5000pt solid windowtext;border-bottom:1.0000pt solid windowtext;mso-border-bottom-alt:0.5000pt solid windowtext;" valign="bottom" width="193">
<p class="MsoNormal" style="vertical-align: bottom;"><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;">电子围栏表</span><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;"><o:p></o:p></span></p>
</td>
</tr>
<tr style="height:14.1500pt;">
<td style="width:144.7500pt;padding:0.7500pt 0.7500pt 0.7500pt 0.7500pt ;border-left:1.0000pt solid windowtext;mso-border-left-alt:0.5000pt solid windowtext;border-right:1.0000pt solid windowtext;mso-border-right-alt:0.5000pt solid windowtext;border-top:none;;mso-border-top-alt:0.5000pt solid windowtext;border-bottom:1.0000pt solid windowtext;mso-border-bottom-alt:0.5000pt solid windowtext;" valign="bottom" width="193">
<p class="MsoNormal" style="vertical-align: bottom;"><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;">线段表</span><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;"><o:p></o:p></span></p>
</td>
</tr>
<tr style="height:14.1500pt;">
<td style="width:144.7500pt;padding:0.7500pt 0.7500pt 0.7500pt 0.7500pt ;border-left:1.0000pt solid windowtext;mso-border-left-alt:0.5000pt solid windowtext;border-right:1.0000pt solid windowtext;mso-border-right-alt:0.5000pt solid windowtext;border-top:none;;mso-border-top-alt:0.5000pt solid windowtext;border-bottom:1.0000pt solid windowtext;mso-border-bottom-alt:0.5000pt solid windowtext;" valign="bottom" width="193">
<p class="MsoNormal" style="vertical-align: bottom;"><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;">终端命令表</span><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;"><o:p></o:p></span></p>
</td>
</tr>
<tr style="height:14.1500pt;">
<td style="width:144.7500pt;padding:0.7500pt 0.7500pt 0.7500pt 0.7500pt ;border-left:1.0000pt solid windowtext;mso-border-left-alt:0.5000pt solid windowtext;border-right:1.0000pt solid windowtext;mso-border-right-alt:0.5000pt solid windowtext;border-top:none;;mso-border-top-alt:0.5000pt solid windowtext;border-bottom:1.0000pt solid windowtext;mso-border-bottom-alt:0.5000pt solid windowtext;" valign="bottom" width="193">
<p class="MsoNormal" style="vertical-align: bottom;"><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;">终端参数表</span><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;"><o:p></o:p></span></p>
</td>
</tr>
<tr style="height:14.1500pt;">
<td style="width:144.7500pt;padding:0.7500pt 0.7500pt 0.7500pt 0.7500pt ;border-left:1.0000pt solid windowtext;mso-border-left-alt:0.5000pt solid windowtext;border-right:1.0000pt solid windowtext;mso-border-right-alt:0.5000pt solid windowtext;border-top:none;;mso-border-top-alt:0.5000pt solid windowtext;border-bottom:1.0000pt solid windowtext;mso-border-bottom-alt:0.5000pt solid windowtext;" valign="bottom" width="193">
<p class="MsoNormal" style="vertical-align: bottom;"><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;">基础数据表</span><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;"><o:p></o:p></span></p>
</td>
</tr>
<tr style="height:14.1500pt;">
<td style="width:144.7500pt;padding:0.7500pt 0.7500pt 0.7500pt 0.7500pt ;border-left:1.0000pt solid windowtext;mso-border-left-alt:0.5000pt solid windowtext;border-right:1.0000pt solid windowtext;mso-border-right-alt:0.5000pt solid windowtext;border-top:none;;mso-border-top-alt:0.5000pt solid windowtext;border-bottom:1.0000pt solid windowtext;mso-border-bottom-alt:0.5000pt solid windowtext;" valign="bottom" width="193">
<p class="MsoNormal" style="vertical-align: bottom;"><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;">多媒体上传记录</span><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;"><o:p></o:p></span></p>
</td>
</tr>
<tr style="height:14.1500pt;">
<td style="width:144.7500pt;padding:0.7500pt 0.7500pt 0.7500pt 0.7500pt ;border-left:1.0000pt solid windowtext;mso-border-left-alt:0.5000pt solid windowtext;border-right:1.0000pt solid windowtext;mso-border-right-alt:0.5000pt solid windowtext;border-top:none;;mso-border-top-alt:0.5000pt solid windowtext;border-bottom:1.0000pt solid windowtext;mso-border-bottom-alt:0.5000pt solid windowtext;" valign="bottom" width="193">
<p class="MsoNormal" style="vertical-align: bottom;"><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;">行驶记录仪表</span><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;"><o:p></o:p></span></p>
</td>
</tr>
<tr style="height:14.1500pt;">
<td style="width:144.7500pt;padding:0.7500pt 0.7500pt 0.7500pt 0.7500pt ;border-left:1.0000pt solid windowtext;mso-border-left-alt:0.5000pt solid windowtext;border-right:1.0000pt solid windowtext;mso-border-right-alt:0.5000pt solid windowtext;border-top:none;;mso-border-top-alt:0.5000pt solid windowtext;border-bottom:1.0000pt solid windowtext;mso-border-bottom-alt:0.5000pt solid windowtext;" valign="bottom" width="193">
<p class="MsoNormal" style="vertical-align: bottom;"><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;">里程统计中间表</span><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;"><o:p></o:p></span></p>
</td>
</tr>
<tr style="height:14.1500pt;">
<td style="width:144.7500pt;padding:0.7500pt 0.7500pt 0.7500pt 0.7500pt ;border-left:1.0000pt solid windowtext;mso-border-left-alt:0.5000pt solid windowtext;border-right:1.0000pt solid windowtext;mso-border-right-alt:0.5000pt solid windowtext;border-top:none;;mso-border-top-alt:0.5000pt solid windowtext;border-bottom:1.0000pt solid windowtext;mso-border-bottom-alt:0.5000pt solid windowtext;" valign="bottom" width="193">
<p class="MsoNormal" style="vertical-align: bottom;"><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;">部门上线率统计表</span><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;"><o:p></o:p></span></p>
</td>
</tr>
<tr style="height:14.1500pt;">
<td style="width:144.7500pt;padding:0.7500pt 0.7500pt 0.7500pt 0.7500pt ;border-left:1.0000pt solid windowtext;mso-border-left-alt:0.5000pt solid windowtext;border-right:1.0000pt solid windowtext;mso-border-right-alt:0.5000pt solid windowtext;border-top:none;;mso-border-top-alt:0.5000pt solid windowtext;border-bottom:1.0000pt solid windowtext;mso-border-bottom-alt:0.5000pt solid windowtext;" valign="bottom" width="193">
<p class="MsoNormal" style="vertical-align: bottom;"><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;">油量变化记录</span><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;"><o:p></o:p></span></p>
</td>
</tr>
<tr style="height:14.1500pt;">
<td style="width:144.7500pt;padding:0.7500pt 0.7500pt 0.7500pt 0.7500pt ;border-left:1.0000pt solid windowtext;mso-border-left-alt:0.5000pt solid windowtext;border-right:1.0000pt solid windowtext;mso-border-right-alt:0.5000pt solid windowtext;border-top:none;;mso-border-top-alt:0.5000pt solid windowtext;border-bottom:1.0000pt solid windowtext;mso-border-bottom-alt:0.5000pt solid windowtext;" valign="bottom" width="193">
<p class="MsoNormal" style="vertical-align: bottom;"><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;">油量和里程统计表</span><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;"><o:p></o:p></span></p>
</td>
</tr>
<tr style="height:14.1500pt;">
<td style="width:144.7500pt;padding:0.7500pt 0.7500pt 0.7500pt 0.7500pt ;border-left:1.0000pt solid windowtext;mso-border-left-alt:0.5000pt solid windowtext;border-right:1.0000pt solid windowtext;mso-border-right-alt:0.5000pt solid windowtext;border-top:none;;mso-border-top-alt:0.5000pt solid windowtext;border-bottom:1.0000pt solid windowtext;mso-border-bottom-alt:0.5000pt solid windowtext;" valign="bottom" width="193">
<p class="MsoNormal" style="vertical-align: bottom;"><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;">车辆上线率统计表</span><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;"><o:p></o:p></span></p>
</td>
</tr>
<tr style="height:14.1500pt;">
<td style="width:144.7500pt;padding:0.7500pt 0.7500pt 0.7500pt 0.7500pt ;border-left:1.0000pt solid windowtext;mso-border-left-alt:0.5000pt solid windowtext;border-right:1.0000pt solid windowtext;mso-border-right-alt:0.5000pt solid windowtext;border-top:none;;mso-border-top-alt:0.5000pt solid windowtext;border-bottom:1.0000pt solid windowtext;mso-border-bottom-alt:0.5000pt solid windowtext;" valign="bottom" width="193">
<p class="MsoNormal" style="vertical-align: bottom;"><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;">五分钟一次油量和里程记录</span><span style="font-family: 宋体; color: rgb(0, 0, 0); font-size: 11pt;"><o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p style="line-height: 25.2px; margin: 10px auto; color: rgb(51, 51, 51); font-family: Georgia, &quot;Times New Roman&quot;, Times, sans-serif; font-size: 14px;"><span style="font-size:18px;"><strong>6) &nbsp;本808服务器对于部标jt808全部协议栈都进行了充分的支持：</strong></span></p>
<p style="line-height: 25.2px; margin: 10px auto; color: rgb(51, 51, 51); font-family: Georgia, &quot;Times New Roman&quot;, Times, sans-serif; font-size: 14px;">&nbsp;</p>
<table border="0" cellpadding="0" cellspacing="0" style="border: 1px solid silver; border-collapse: collapse; word-break: break-word; color: rgb(51, 51, 51); font-family: Georgia, &quot;Times New Roman&quot;, Times, sans-serif; font-size: 14px; line-height: 25.2px;">
<tbody>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">序号</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p class="a" style="line-height: 1.8; margin: 10px auto;">项目名称</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p class="a" style="line-height: 1.8; margin: 10px auto;">触发条件</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p class="a" style="line-height: 1.8; margin: 10px auto;">预期回应</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">01</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">终端心跳</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">根据设定的心跳时间参数，定时自动上报</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">主动上发，需要平台提供通用应答，长时间无法获得应答将导致程序自动断开重连。</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">02</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">设置终端参数</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复通用应答，可设置的参数参考行标协议文本8.8</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">03</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">超速设置</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复通用应答</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">04</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">疲劳驾驶设置</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复通用应答</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">05</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">超时停车设置</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复通用应答</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">06</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">查询终端参数</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复0&#215;0104应答参照行标协议文本8.10描述，回复的参数信息包含前述设置指令所设定修改的内容</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">07</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">终端控制</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复通用应答</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">08</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">位置信息查询</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复固化的位置信息：26.033435N，119.139317E</p>
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">高度23.59，速度0，角度0</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">09</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">临时位置跟踪控制</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复通用应答</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">10</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">文本信息下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复通用应答</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">11</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">追加事件</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复通用应答</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">12</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">删除特定事件</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复通用应答</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">13</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">更新事件</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复通用应答</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">14</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">修改事件</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复通用应答</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">15</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">删除全部事件</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复通用应答</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">16</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">追加新事件</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复通用应答</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">17</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">提问下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">程序立即回复通用应答，稍后由用户手动操作回复提问</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">18</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">信息点播菜单追加</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复通用应答</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">19</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">信息点播菜单修改</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复通用应答</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">20</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">信息点播菜单更新</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复通用应答</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">21</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">信息点播菜单删除</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复通用应答</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">22</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">信息点播菜单追加</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复通用应答</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">23</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">信息点播菜单修改</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复通用应答</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">24</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">信息点播菜单更新</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复通用应答</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">25</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">信息服务</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复通用应答</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">26</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">电话回拨</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复通用应答，不触发任何逻辑动作，请关注日志</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">27</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">电话回拨_监听</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复通用应答，不触发任何逻辑动作，请关注日志</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">28</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">设置电话本_删除</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复通用应答</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">29</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">设置电话本_更新电话本</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复通用应答</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">30</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">设置电话本_追加电话本</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复通用应答</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">31</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">设置电话本_修改电话本</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复通用应答</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">32</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">车辆控制_车门解锁</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复通用应答</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">33</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">车辆控制_车门加锁</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复通用应答</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">34</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">更新圆形区域</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复通用应答</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">35</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">删除圆形区域</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复通用应答</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">36</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">更新矩形区域</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复通用应答</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">37</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">删除矩形区域</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复通用应答</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">38</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">更新多边形区域</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复通用应答</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">39</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">删除多边形区域</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复通用应答</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">40</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">更新路线</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复通用应答</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">41</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">删除所有路线</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复通用应答</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">42</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">行驶记录仪数据采集命令</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">根据形式记录议命令字发回测试数据，数据可能会产生分包</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">43</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">行驶记录仪参数下传命令</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复通用应答</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">44</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">抓拍立即上传</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复通用应答，随后分包上发固化的多媒体数据，上发数据与多媒体通道有关*</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">45</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">录像立即上传</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发抓拍指令附带录像提示</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复通用应答，随后分包上发固化的多媒体数据，上发数据与多媒体通道有关*</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">46</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">检索多媒体列表</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">根据查询的多媒体类型回复固化的多媒体列表数据，参考行标协议8.46，通道与时间参数将被解析于日志中，但是不会影响列表内容</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">47</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">存储多媒体上传</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">根据通道*和多媒体类型定义回传多媒体数据，时间和事件等参数将被正确解析与日志中，但是不会影响上发的多媒体内容</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">48</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">录音32Kbps立即上传</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复通用应答</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">49</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">数据下行透传</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复通用应答</p>
</td>
</tr>
<tr>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="44">
<p class="a" style="line-height: 1.8; margin: 10px auto;">50</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="136">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台RSA公钥</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="135">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">平台下发</p>
</td>
<td style="border: 1px solid silver; border-collapse: collapse; padding: 3px;" width="261">
<p align="left" class="a" style="line-height: 1.8; margin: 10px auto;">回复终端RSA公钥，本软件将把平台下发的RSA公钥回发以验证协议的正确性</p>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p style="line-height: 25.2px; margin: 10px auto; color: rgb(51, 51, 51); font-family: Georgia, &quot;Times New Roman&quot;, Times, sans-serif; font-size: 14px;">&nbsp;</p>
<p>&nbsp;</p>
<p style="line-height: 25.2px; margin: 10px auto; color: rgb(51, 51, 51); font-family: Georgia, &quot;Times New Roman&quot;, Times, sans-serif; font-size: 14px;">&nbsp;</p>
<p style="line-height: 25.2px; margin: 10px auto; color: rgb(51, 51, 51); font-family: Georgia, &quot;Times New Roman&quot;, Times, sans-serif; font-size: 14px;">&nbsp;</p>
<p class="MsoNormal"><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:Arial;color:black"><o:p></o:p></span></p>
<p> (29190)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jt808.com/?feed=rss2&#038;p=971</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
