版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、主讲人: 曹兴会Web Socket通信的基本知识使用Web Socket API使用WebSocket API1. WebSocket通信的基本知识WebSocket是HTML5提供的,在Web应用程序中,客户端与服务器端之间进行的非HTTP的通信机制。它实现了用HTTP不容易实现的服务器端的数据推送等智能通信技术,因此受到了高度关注。使用WebSocket API可以在服务器与客户端之间建立一个非HTTP的双向连接。这个连接是实时的,也是永久的,除非被显式关闭。1. WebSocket通信的基本知识这意味着当服务器想向客户端发送数据时,可以立即将数据推送到客户端的浏览器中,无需重新建立连接
2、。只要客户端有一个被打开的socket(套接字)并且与服务器建立连接,服务器就可以把数据推送到这个socket上,服务器不再需要轮询客户端的请求,从被动转为了主动。另外,在WebSocket API中,同样可以使用跨域通信技术。在使用跨域通信技术时,应该确保客户端与服务器端是互相信任的,服务器端应该判断将它的服务发送给所有客户端,还是只发送给某些受信任的客户端。2.使用WebSocket APIWeb Socket的API本身非常简单。将URL字符串作为参数,然后调用WebSocket对象的构造函数来建立与服务器之间的通信连接,例如:URL字符串必须以“ws”或“wss”(加密通信时)文字作为
3、开头。这个URL字符串被设定好之后,在JavaScript脚本中可以通过访问WebSocket对象的url属性来重新获取。var webSocket = new WebSocket(ws:/localhost:8005/socket);2.使用WebSocket API通信连接建立好之后,就可以进行客户端与服务器端的双向通信了。使用WebSocket对象的send()方法对服务器发送数据,只能发送文本数据,但是可以使用JSON对象把任何JavaScript对象转换成文本数据后进行发送。使用send()方法的代码如下:通过获取message事件句柄来接收服务器传过来的数据,示例如下:webSoc
4、ket.send(data);webSocket.addEventListener(message, function(event) var data = event.data; / 其他处理代码。 , false); 2.使用WebSocket API通过获取open事件句柄来监听socket的打开事件,示例如下:webSocket.addEventListener(open, function(event) / 开始通信时的处理。 , false);通过获取close事件句柄来监听socket的关闭事件,示例如下:webSocket.addEventListener(close, func
5、tion(event) / 通信结束时的处理。 , false);通过获取close()方法来关闭socket,切断通信连接,示例如下:webSocket.close(); 2.使用WebSocket API另外,可以通过读取readyState的属性值来获取WebSocket对象的状态。readyState属性存在以下几种属性值:n CONNECTING(数字值0):表示正在连接。n OPEN(数字值1):表示已建立连接。n CLOSING(数字值2):表示正在关闭连接。n CLOSED(数字值3):表示已关闭连接2.使用WebSocket API使用WebSockets API,不仅可以发
6、送文本数据,而且可以JSON对象来发送一切JavaScript中的对象。使用JSON对象的关键是使用它的两个方法JSON.parse()方法与JSON.stringify()方法,其中JSON.stringify()方法把JavaScript对象转换成为文本数据,JSON.parse()方法将文本数据转回为JavaScript对象。示例如下:var host = ws:/localhost:8005/socket; var webSocket = new WebSocket(host); var userName, userAge, successFlag, currentTime; 2.使用WebSocket APIwebSocket.addEventListener(message,function(event)varDataBase=JSON.parse(event.data);userName=DataBase.userName;userAge=DataBase.userAge;successFlag=false;if(DataBase.DataType=SQLServer)successFlag=InsertSQLData();elseif(DataBase.DataType=ORACLE)successFlag=InsertO
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025下半年安徽芜湖市三山区建投公司招聘总笔试历年参考题库附带答案详解
- 项目经理项目执行中的监控与调整计划
- 店员绩效考核方案及实施细则
- 健康饮食指南与营养计划
- 学校教室空间布局优化方案
- 初级项目经理建筑工作计划与施工现场管理
- 时尚博主内容创作与推广计划
- 运营成本控制方案及降本增效措施
- 音乐会策划方案及执行时间线
- 汽车检测岗位工作计划
- 贵州省黔东南州剑河县第四中学2024-2025学年上学期八年级历史半期教学质量水平检测试卷(含答案)
- 2.2单一制和复合制 (教学设计)高二政治(统编版选择性必修1)
- 新生儿护理及母乳喂养课件
- 福建省厦门市厦门第一中学2025届物理高二上期中监测模拟试题含解析
- 新煤矿防治水细则解读
- 叶朗美学原理课件
- 河南省历年中考语文现代文阅读真题49篇(含答案)(2003-2023)
- 读后续写AMother'sDaySurprise课件高三英语一轮复习
- 按时还款保证书
- 股权代持与公司股权代持法律意见书
- 2023年大学生心理健康考试题库附答案
评论
0/150
提交评论