html5教程-浅谈HTML5 WebSocket

发布时间:2018-12-18 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了html5教程-浅谈HTML5 WebSocket脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大家多多光顾小站,小宝典在此谢过。

Email:longsu2010 at yeah dot net

WebSocket是我现在所在的公司获取数据的主要通道,也是我工作的重要组成部分。今天看同事讨论这个问题,出现了好多有趣的事情,比如说要把WebSocket做成同步的来调试错误(WebSocket是异步全双工通信,标准就是这样的),所以对WebSocket做一个简单的说明,如果有需要后期可能会做一个详细的补充,欢迎关注我的CSDN博客。


简单示例:
VAR socket = new WebSocket('ws://' + host + ':' + port);
socket.onmessage = function(evt){

console.LOG(evt.data);
};
socket.onclose = function(){ };
socket.onoPEn = function(){

this.send("发送的内容");
};
socket.onerror = function(err){

console.log(err); console.log(arguments);
};

// 发送信息的方法

function sendMsg(){
 if( socket && (websock.readyState === 1) ){
  socket.send("sDF");
 }else{
  // 放入发送队列
  // 创建or重新创建连接
 }
}

通过AJAX获取数据时XMLHTTPRequest对象(实例)一般不会复用(每次都创建一个新的),但是WebSocket连接是可以复用的,而且复用的好处很多,比如减少服务器端连接、节省创建连接时间等等,再说也没有不复用的道理。因为复用所以一般都只创建一个WebSocket实例,为了保证通信的可靠性就要在每次发送信息前检查一下WebSocket连接是否可用(是不是服务器端已经主动断开连接了),可用才能发信息嘛,可用就发送,不可用那个放入发送队列,WebSocket实例的readystate属性就是用来检测WebSocket实例状态的,说明如下。

readyState
0 : 对应常量CONNECTING,表示连接正在创建
1 : 对应常量OPEN,表示连接处于可通讯状态
2 : 对应常量CLOSING,表示连接正在断开
3 : 对应常量CLOSED,表示连接已经断开

因为WebSocket实例创建和信息传输都是异步的所以就会涉及到回调函数,如当连接创建完成调用哪个函数。各回调函数句柄如下:
onopen:当连接创建完成调用哪个函数,对应open事件,适合将待发送队列中的信息发送到server端。
onerror:当连接本身出现问题时,对应error事件,适合做重新连接。
onclose:当连接关闭时,对应close事件,适合资清理。
onmessage:当服务器端推送信息到客户端时,对应message事件。

WebSocket实例提供的方法如下:
send:发送信息到server端。如果readyState为1返回true,否则返回false。
close:关闭WebSocket连接。

WebSocket实例会发布如下事件:
open:当连接创建完成时,及readyState从0变为1时。
message:每当有信息从server端推送到client端时。
error:当连接本身发生错误时
close:当连接关闭时。

订阅事件可以通过WebSocket实例的addEventListener方法来完成,如:
var onmsg = function(){

console.log(arguments)
};
socket.addEventListener(";message", onmsg);
取消订阅可以通过removeEventListener,如:
socket.removeEventListener("message", onmsg);

功能上socket.addEventListener("message", onmsg);与socket.onopen = onmsg;是相同的,区别在于前者是可以添加多个回调函数的,而后者是赋值操作,总是使用最后一次所赋的值。

Email:longsu2010 at yeah dot net

WebSocket是我现在所在的公司获取数据的主要通道,也是我工作的重要组成部分。今天看同事讨论这个问题,出现了好多有趣的事情,比如说要把WebSocket做成同步的来调试错误(WebSocket是异步全双工通信,标准就是这样的),所以对WebSocket做一个简单的说明,如果有需要后期可能会做一个详细的补充,欢迎关注我的CSDN博客。


简单示例:
var socket = new WebSocket('ws://' + host + ':' + port);
socket.onmessage = function(evt){

console.log(evt.data);
};
socket.onclose = function(){ };
socket.onopen = function(){

this.send("发送的内容");
};
socket.onerror = function(err){

console.log(err); console.log(arguments);
};

// 发送信息的方法

function sendMsg(){
 if( socket && (websock.readyState === 1) ){
  socket.send("sdf");
 }else{
  // 放入发送队列
  // 创建or重新创建连接
 }
}

通过AJAX获取数据时XMLHTTPRequest对象(实例)一般不会复用(每次都创建一个新的),但是WebSocket连接是可以复用的,而且复用的好处很多,比如减少服务器端连接、节省创建连接时间等等,再说也没有不复用的道理。因为复用所以一般都只创建一个WebSocket实例,为了保证通信的可靠性就要在每次发送信息前检查一下WebSocket连接是否可用(是不是服务器端已经主动断开连接了),可用才能发信息嘛,可用就发送,不可用那个放入发送队列,WebSocket实例的readyState属性就是用来检测WebSocket实例状态的,说明如下。

readyState
0 : 对应常量CONNECTING,表示连接正在创建
1 : 对应常量OPEN,表示连接处于可通讯状态
2 : 对应常量CLOSING,表示连接正在断开
3 : 对应常量CLOSED,表示连接已经断开

因为WebSocket实例创建和信息传输都是异步的所以就会涉及到回调函数,如当连接创建完成调用哪个函数。各回调函数句柄如下:
onopen:当连接创建完成调用哪个函数,对应open事件,适合将待发送队列中的信息发送到server端。
onerror:当连接本身出现问题时,对应error事件,适合做重新连接。
onclose:当连接关闭时,对应close事件,适合资源清理。
onmessage:当服务器端推送信息到客户端时,对应message事件。

WebSocket实例提供的方法如下:
send:发送信息到server端。如果readyState为1返回true,否则返回false。
close:关闭WebSocket连接。

WebSocket实例会发布如下事件:
open:当连接创建完成时,及readyState从0变为1时。
message:每当有信息从server端推送到client端时。
error:当连接本身发生错误时
close:当连接关闭时。

订阅事件可以通过WebSocket实例的addEventListener方法来完成,如:
var onmsg = function(){

console.log(arguments)
};
socket.addEventListener("message", onmsg);
取消订阅可以通过removeEventListener,如:
socket.removeEventListener("message", onmsg);

功能上socket.addEventListener("message", onmsg);与socket.onopen = onmsg;是相同的,区别在于前者是可以添加多个回调函数的,而后者是赋值操作,总是使用最后一次所赋的值。

觉得可用,就经常来吧! 脚本宝典 欢迎评论哦! html5教程,巧夺天工,精雕玉琢。小宝典献丑了!

脚本宝典总结

以上是脚本宝典为你收集整理的html5教程-浅谈HTML5 WebSocket全部内容,希望文章能够帮你解决html5教程-浅谈HTML5 WebSocket所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。