基于websocket的即时通信过滤系统

来源 :中国科技博览 | 被引量 : 0次 | 上传用户:sukoo777
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘 要]互联网的飞速发展使得人们对实时通信的需求越来越迫切,实现实时通信的软件有成为 互联网上第一大软件的趋势。在互联网高速发展的大环境下,WebSocket協议应用成为实时通信技术领域研究的热点,并得到了广泛的实际应用。本文首先研究了目前广泛使用的几种实时Web技术方案,分析了各种方案的不足;然后对WebSocket协议实现原理及关键技术进行了研究。最后,使用JAVA编程语言设计并实现了完整的实时Web通信系统和通信的过滤,并对此通信系统的性能与可行性进行了理论分析。
  [关键词]websocket java 即时通信 过滤系统
  中图分类号:TH547 文献标识码:A 文章编号:1009-914X(2017)32-0000-01
  互联网的飞速发展,Web通信已经成为人与人之间信息交流的一种重要方式。与运营商通信方式相比,Web通信实现比较简单、对运营商依赖的程度小、用户之间信息交互的方式多,并且成本很低。这些优点使得HTTP协议在实时Web通信的应用中得到广泛的使用。但这种工作方式也存在一定的缺陷,由于在該方式下的实时Web应用中消息传输过程必须要由客户端发出申请,服务器在收到数据更新请求后对其处理,并将客户端需要的数据发给客户端。若服务器数据更新速度很慢并且应用对数据的实时性要求不高,这种方式是满足需求的,但若应用对数据的实时性要求很高,在客户端展示的数据可能就不符合实际了,这是因为当客户端正准备展现服务器发来的数据时,服务器端对应的数据可能早已发生更新。
  探索更加简捷的实时Web通信实现方案,以解决当前基于HTTP协议的实时Web通信技术方案中存在的问题是非常必要的。于是,WebSocket协议产生了,它使Web应用能在第一次请求连接后就建立起双向连接,提高了客户端与服务器间的通信效率,在实现实时Web通信的同时也减少了服务器资源与带宽的消耗。WebSocket协议的出现解决了基于HTTP协议的实时Web通信应用中存在的诸多弊端,有利于开发者开发出实时效果更好的应用。
  1.Web通信技术的发展
  基于WebSocket协议的方案也减少了系统开销和降低了系统复杂性,减去了不必要的网络流量,缩短了网络延迟。在国内外主要应用于社交订阅、多玩家游戏、股票基金报价、基于位置的应用等对实时数据要求高的场合。目前在所有实时Web通信实现方案中使用得最多的的是基于Ajax的轮询和Comet技术,它们都是基于HTTP的实时Web技术方案。其优点是可达到双向通信,但存在缺点。
  基于我们对的Web通信的实际研究,现开发一套基于WebSocket的带有过滤功能的即时通信系统。整个系统分为WebScoket后台通信模块和聊天过滤模块组成。WebScoket后台通信模块是基于Java的spring与springmvc框架,由用户连接池,聊天模块,数据库,过滤检测等功能组成。前端主要采用HTML和CSS编写,并采用了layui来进行界面的美化。聊天过滤模块由python编写,具有敏感词管理,敏感词屏蔽,溯源等功能。用户进入系统后,先进行登陆或者注册操作,该操作的请求会由WebScoket后台通信模块连接数据库进行处理。
  登陆成功后,WebScoket后台通信模块会将用户ID与session放入用户连接池,以便处理之后进行的聊天请求。用户发送聊天消息后,WebScoket后台通信模块将消息转发给聊天过滤模块进行处理,聊天过滤模块接收到消息后,进行敏感词配对,将敏感内容进行屏蔽并将用户行为放入数据库以便以后溯源,在处理完消息后,将处理好的消息返回给WebScoket后台通信模块,WebScoket后台通信模块从连接池取出目标用户session进行消息发送,完成整个聊天过程。如图1所示。
  2.基于websocket通信的基本设计
  由WebSocket协议工作的原理可知,客户端在发起连接请求后,服务器需与客户端通过HTTP协议完成握手动作,在握手成功之后建立双向全双工通信,并且维持此连接到网络出现错误或连接的一方主动断开连接为止,必须实现这些基本功能才可以成为基于WebSocket协议的服务器。同时作为服务器软件,也要给开发者提供API。总体来说,要成为支持WebSocket协议的服务器需具备以下这些功能:
  (1)能够监听来自客户端的连接请求,在收到客户端请求后构造回复信令完成握手;
  (2)能够维持对客户端的连接,提供连接检查机制,在检查到因为异常原因断开的连接时能主动放弃该连接,释放无效连接占用的资源;
  (3)服务器端能识别客户端主动申请关闭连接的请求,收到请求后关闭连接;
  (4)对客户端发来的数据能做对应的处理;
  (5)提供API便于使用者开发应用,通过对服务器整体功能需求的分析,可以将服务器细分为请求处理部分、数据读取部分、数据发送部分及业务处理部分。
  在连接请求处理部分主要处理用户连接请求,构造回复信令,完成握手,建立双向连接。数据读取部分负责读取客户端给用户发送的数据。数据发送部分负责将服务器的最新消息推送给客户端。业务处理部分是在API的基础上由用户扩展实现的应用。这几个部分之间是相对独立的,每一个部分的功能都是单一的,因此在本文中实现服务器采用的是面向对象且对多线程支持较好的Java编程语言。
  在传统技术方案中,要么客户端无法与服务器建立完全的全双工通信以满足实时性的需求,要么需要借助于浏览器插件导致方案的跨平台性很差。为此我们提出了一种以WebSocket协议为基础协议的实现方案,目标是实现一个适用于Chrome浏览器的无插件实时Web通信系统。整个业务逻辑处理的主要功能实现集中在ChatServer类中。ChatServer类继承自WebSocketSever类,类中对业务的处理分4个部分,分别是连接建立处理部分、连接断开处理部分、二进制数据流转发处理部分、字符数据转发处理部分。连接建立处理部分的功能比较简单,有新用户与服务器建立连接后,给此用户发送目前已与服务器建立连接的用户名,同时服务器将新连接的用户信息加入已连接用户队列。连接断开处理部分的功能刚好和连接建立处理模块相反,在用户连接断开后,从已连接用户队列删除此用户,并告知其他用户此用户与服务器的连接已断开。   二进制数据流转发处理部分可以直接根据用户连接找到其对端用户,将数据用对端用户的WebSocket連接发送即可到达对端用户。字符数据转发处理部分的功能较复杂,在服务器收到客户端WebSocket连接发来字符数据后,将对数据进行分析,若以peerName字符开始,说明此时用户要与指定名字为peerName的用户建立实时通信。
  随后服务器会依据peerName查询已在线用户队列,确定对端连接对象,将本地连接对象Ws的相关信息赋给对端连接对象Ws,同时将对端连接对象的相关信息赋给本地连接对象,建立一个双向的虚拟连接。
  3.Server连接请求处理模块的设计及实现
  服务器对用户连接请求处理模块的主要功能可以细分成接受连接要求、回复连接请求信令完成握手、将成功的连接加入到服务器已连接的用户队列中。具体过程如下图所示,服务器启动后会构建WebSocketListener类对象并启动监听线程,一直检测与服务器连接的WebSocket用戶,在检测到有用户给服务器提出连接请求时会生成WebSocketClient对象,并调用其on Websocket Handshake Received AsServer函数给发送申请的用户回复确认握手信令,由于目前WebSocket协议有不同的草案,所以收到的申请报文段不一样,对应回复的报文段也不同。如图2所示。
  4.通信数据监测设计
  设计一个敏感词监控系统,通过对聊天信息的过滤,来进行敏感词的屏蔽。并且记录用户发出的敏感词的次数和内容。
  监控模块由三个部分组成,用户的数据统计,敏感词库的管理,敏感词过滤和屏蔽。
  用户数据统计:通过记录用户发出的敏感词,记录用户违规的记录信息,比如用户的id,敏感词内容,用户的IP和敏感词发送时间。
  敏感词库:收集可能触发的敏感词条,根据用户的类型不同,我们可以上线不同的敏感词库,避免某些不必要的触发,并可以使用后台对敏感词库进行管理。
  敏感词屏蔽:我们根据用户的发言进行过滤,首先由通讯模块发送信息到监控信息中,我们再通过对比使用的敏感词库的信息来进行屏蔽关键词,避免造成网络的不文明行为。
  5.总结
  选用Java编程语言实现WebSocket Server;为提高系统的安全性与稳定性,选用MySQL数据库以保存用户信息。基于html5进行界面显示,使用python进行了聊天过滤。通过实验对其性能进行了评估;通过功能测试及对测试数据的分析,证明了该实时Web通信系统的合理性、可行性及实用性,并具有一定的商业价值。
  参考文献
  [1] 钱丽丽.基于G4系列微处理器Web Server终端关键技术的实现[D].南京:东南大学硕士学位论文,2008.
  [2] 侯淑英.B/S模式和C/S模式优势比较[J].沈阳教育学院学报,2007(02).
  [3] 易仁伟.基于WebSocket的实时Web应用的研究[D].武汉:武汉理工大学硕士学位论文,2013.
  [4] 张军,冯丽辉.基于动态数据及Java Applet技术实现实时Web虚拟仪器[J].昆明理工大学学报,2006,(5):50-54.
  [5] 黄晓安,何亮,许宁.使用HTML5 WebSocket构建实时Web应用[EB/OL].
其他文献
[摘 要]综采队出煤系统使用的转载机受自身结构影响,在运行时链条与刮板会对凸槽产生较大冲击,造成凸槽段溜槽磨损甚至磨通,本文采用一种弧度分段采集法对破损的凸槽进行修复。  [关键词]转载机、凸槽、弧度分段采集  中图分类号:TH397 文献标识码:A 文章编号:1009-914X(2017)32-0000-01  1 引言  顧桥矿综采一队回采的1124(1)工作面使用的转载机为张家口生产的SZZ
期刊
[摘 要]在最近一段时期以来,伴随着欠平衡钻井的推广使用,钻井设施的技术含量得到了越来越显著的提升。欠平衡钻井技术也开始走向全新的高速发展进步的时代。欠平衡钻井的优点是可以尽可能地避免对地层结构的破坏,避免造成自然环境破坏,提升原油开采量和开采速率。因为该项技术较为复杂先进,对开采技术的要求比较高,因此无线随钻技术在欠平衡钻井的开采过程中得到了广泛应用,并且获得了可喜的成果。  [关键词]无线随钻
期刊
[摘 要]中国是世界上公认的产煤和用煤大国,中国一年煤的产量在10亿t左右,其中大部分用于电力行业和私人使用,使用过程较为简单,一般为直接燃燒,通过煤化工进行产气的比较少。但是随着近年来国际油价不断攀升,天然气供应欠缺,我国的煤化工产业亟待发展。本文对煤气化技术选择进行了分析。  [关键词]煤气化;技术选择  中图分类号:TH277 文献标识码:A 文章编号:1009-914X(2017)32-0
期刊
[摘 要]据国家有关的标准与评价方法,对昆山某医院新建DSA机房进行环境影响评价,该医院新建DSA机房项目符合国家相关法律、法规、标准要求,其运行对周围环境产生的影响符合辐射环境保护的要求,从辐射环境保护角度论证,该项目的建设运行是可行的。  [关键词]血管造影;辐射防护;环境影响评价  中图分类号:TL13 文献标识码:A 文章编号:1009-914X(2017)32-0000-01  引言  
期刊
[摘 要]孩子是祖国的希望,加强对学生成长的关心,是我们社会各界都非常关注的一个重要内容。学生在学校中统一着装校服,可以更加体现出学生活力飞扬的一面,而且在学生在校园中统一穿着校服,也可以从一定层面上体现出学校管理的整齐划一。而与此同时,校服质量也备受社会各界的关注,校服质量不仅仅关系着孩子们的健康成长,同时,也很大程度地体现出社会影响力。因此,必须要加强对校服质量的监督。下面本文就校服质量的监督
期刊
[摘 要]科学技术的进步使现代制造业发生了本质性的改变,数控技术的水准、数控技术加工工艺的标准化和精准化对制造业有着重要的影响。文章首先提出数控加工工艺的流程及特点,并从零件标准和成组零件数控加工标准两个方面提出数控加工工艺标准化的分析,最后简单提出数控加工工艺标准化设计的实现思路。  [关键词]数控;加工工艺;标准化;精准化  中图分类号:TH337 文献标识码:A 文章编号:1009-914X
期刊
[摘 要]煤层采空区对隧道安全施工造成严重的影响和威胁,笔者通过在云南某高速公路隧道采空区的瞬变电磁探测、资料分析,再结合钻探的验证,阐述了瞬变电磁法在探测隧道煤层采空区的应用效果及自己的认识。  [关键词]煤层采空区;隧道;瞬变电磁法  中图分类号:TH527 文献标识码:A 文章编号:1009-914X(2017)32-0000-01  近年来随着我国经济的大力发展,在云南地区的交通建设的投入
期刊
[摘 要]随着科学技术的进步,许多控制设备成功应用在自来水厂建设领域。基于低碳环境下,为实现自来水节能降耗的目标,自来水厂应用自动化控制系统可有效满足需求。本文阐论述了自来水厂自动化控制系统的组成、PLC技术在水厂自动化控制系统中的应用,为PLC技术在水厂自动化控制中的应用提供借鉴和参考。  [关键词]PLC技术;水厂;应用  中图分类号:TH437 文献标识码:A 文章编号:1009-914X(
期刊
[摘 要]三维激光扫描测量技术克服了传统测量技术的局限性,能对立体实物进行掃描,且具有速度快、实时性强、精度高、主动性强、全数字特征、性能更强的特点,可以极大地降低成本,节约时间,而且使用方便,其输出格式可直接与CAD、三维动画等工具软件接口。本文对三维激光扫描技术在公路工程测量中应用的可行性展开了研究,以供参考。  [关键词]三维激光扫描技术;公路工程测量;可行性  中图分类号:TH457 文献
期刊
[摘 要]水力喷射压裂技术在油田生产中占据着重要的位置,是一种新型的油气生产增产技术,本文首先分析了水力喷射技术的种类,同时阐述了水力喷射压裂技术在水平井压裂中的应用,最后总结了全文。  [关键词]水力喷射压力技术;水平井;志丹采油厂  中图分类号:TH417 文献标识码:A 文章编号:1009-914X(2017)32-0000-01  一、水力喷射技术的种类  (一)水力射孔技术  水力喷射中
期刊