Web Sockets

xiaoxiao2021-02-28  166

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级语法分别定义每个事件处理程序。

转载请注明原文地址: https://www.6miu.com/read-69543.html

最新回复(0)