欢迎来到天天文库
浏览记录
ID:31359597
大小:113.00 KB
页数:7页
时间:2019-01-09
《基于websocket的信息推送技术在网站系统中的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于websocket的信息推送技术在网站系统中的设计与实现 摘要:该文论述websocket信息推送技术的概念,以及如何在高校教学网络系统中设计实现websocket信息推送。 关键词:推送技术;高校教学网络系统;实时通信 中图分类号:TP393文献标识码:A文章编号:1009-3044(2016)27-0064-02 1背景 传统的HTTPrequest模式存在明显的缺点,浏览器通过不断向服务器“轮询”获取最新信息,从而占用大量带宽资源。WebSocket协议作为HTML5的一种新协议,很好地解决了这个问题:浏览器发出websocket连接请求,
2、服务器发生回应,产生“握手”,从而使浏览器与服务器之间产生长连接。这个长连接的生命周期是从建立握手到浏览器或者服务器一方主动断开连接为止,相对于以往的http连接,生命周期长。 2服务器信息推送 首先,用户页面的布局用的是html的iframe子框架组合,头部子框架留出一块位置用户显示系统推送消息,同时负责与Server端进行websocket连接。然后管理员账号有系统消息选项,进入消息面板进行消息推送。 关键功能代码介绍如下。7 子frame触发同源兄弟frame发送函数: functionpostToServer(){ parent.frame
3、s["topFrame"].postToServer(); } 兄弟frame将消息发送给服务器: functionpostToServer(){ varmsg=parent.frames["main"].document.getElementById("pushtext").value; we.send(msg); } Server端存储在线用户session的数据结构为动态数组: privatestaticArrayListmmiList=newArrayList(); 若用户成功用websocket与Server握手时,将该用户节点加入
4、数组: publicvoidonOpen(WsOutboundoutbound){ System.out.println("OpenClient"); this.myoutbound=outbound; mmiList.add(this);} 用户关闭网站,与服务器断开握手时,删除该用户节点: publicvoidonClose(intstatus){ System.out.println("CloseClient."); mmiList.remove(this); }7 系统消息推送时,Server端将从管理员用户接收来的消息发送给所有在
5、线用户;发送时通过遍历在线用户session数组进行发送: publicvoidonTextMessage(CharBuffercb)throwsIOException{ System.out.println("AcceptMessage:"+cb); for(MyMessageInboundmmib:mmiList){ CharBufferbuffer=CharBuffer.wrap(cb); mmib.myoutbound.writeTextMessage(buffer); mmib.myoutbound.flush(); } } 3客户
6、端信息推送 websocket技术如果是管理员面向全体在线用户就是系统推送,而如果是用户与用户间互相进行推送就升级为了在线聊天。 关键功能代码介绍如下。 //发送消息给Server functionsendMsg(){ varfromName=parent.frames["main"].document.getElementById("userName").innerHTML; vartoName=parent.frames["main"].document.getElementById('name').value;//发给谁 varconten
7、t=parent.frames["main"].document.getElementById('writeMsg').value;//发送内容7 ws.send(fromName+","+toName+","+content); } //从Server接收消息 ws.onmessage=function(e){ if(flage==0){parent.frames["BoardMenu"].document.getElementById("message").innerHTML+=e.data+""; }else{parent.frames["m
8、ain"].document.getE
此文档下载收益归作者所有