Web Sockets

Web Sockets的目标是在一个单独的持久连接上提供全双工、双向通信。Web Sockets使用自定义的协议,未加密的连接为ws://;加密的连接为wss://;

1.首先创建一个Web Socket,先实例化一个WebSocket对象并传入要连接的URL:

var socket = new WebSocket("ws://www.example.com/server.php");
注意:必须传入绝对URL,同源策略对Web Sockets不适用,因此可以通过它打开到任何站点的连接,至于是否会与某个域中的页面通信,则完全取决于服务器。

实例化了Web Socket对象后,浏览器会马上尝试创建连接,WebSocket有一个readyState属性,值为0表示正在建立连接;值为1表示已经建立连接,值为2表示正在关闭连接,值为3表示已经关闭连接。

关闭Web Socket连接,可以在任何时候调用close()方法。

2.发送和接收数据

Web Socket打开之后,就可以通过连接发送和接收数据。要向服务器发送数据,使用send()方法并传入任意字符串,例如:

socket.send("Hello World");
Web Sockets只能通过连接发送纯文本数据,复杂的数据结构在通过连接发送之前必须进行序列化。

当服务器向客户端发来消息时,WebSocket对象就会触发message事件,该事件与其他传递消息的协议类似,也是把返回的数据保存在event.data属性中。

socket.onmessage = function(event){
    var data = event.data;
    ...
}
3.其他事件

open:在成功建立连接时触发;

error:在发生错误时触发,连接不能持续;

close:连接关闭时触发;事件event对象有三个额外属性:wasClean--布尔值,是否已明确地关闭;code--服务器返回的数值状态码;reason--包含服务器发回消息的字符串;

注意:WebSocket对象对象事件不支持DOM2级事件侦听器,因此必须使用DOM0级语法分别定义每个事件处理程序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值