Websocket(一)——原理及基本属性和方法 (5)

可以看到,当onopen触发时,对应的额就是readyState的OPEN状态,不包含OPENING;onclose触发时,对应的就是CLOSED状态,不包含CLOSING状态。

WebSocket 事件

以下是 WebSocket 对象的相关事件。假定我们使用了以上代码创建了 Socket 对象:

事件事件处理程序描述
open   Socket.onopen   连接建立时触发  
message   Socket.onmessage   客户端接收服务端数据时触发  
error   Socket.onerror   通信发生错误时触发  
close   Socket.onclose   连接关闭时触发  
      WebSocket 方法

以下是 WebSocket 对象的相关方法。假定我们使用了以上代码创建了 Socket 对象:

方法描述
Socket.send()  

使用连接发送数据

 
Socket.close()  

关闭连接

 
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>菜鸟教程(runoob.com)</title> <script type="text/javascript"> function WebSocketTest() { if ("WebSocket" in window) { alert("您的浏览器支持 WebSocket!"); // 打开一个 web socket var ws = new WebSocket("ws://localhost:9998/echo"); ws.onopen = function() { // Web Socket 已连接上,使用 send() 方法发送数据 ws.send("发送数据"); alert("数据发送中..."); }; ws.onmessage = function (evt) { var received_msg = evt.data; alert("数据已接收..."); }; ws.onclose = function() { // 关闭 websocket alert("连接已关闭..."); }; } else { // 浏览器不支持 WebSocket alert("您的浏览器不支持 WebSocket!"); } } </script> </head> <body> <div> <a href="javascript:WebSocketTest()">运行 WebSocket</a> </div> </body> </html>  
                                  用websocket发送接受二进制数据

WebSocket可以通过ArrayBuffer,发送或接收二进制数据。

var socket = new WebSocket(\'ws://127.0.0.1:8081\'); socket.binaryType = \'arraybuffer\'; // Wait until socket is open socket.addEventListener(\'open\', function (event) { // Send binary data var typedArray = new Uint8Array(4); socket.send(typedArray.buffer); }); // Receive binary data socket.addEventListener(\'message\', function (event) { var arrayBuffer = event.data; // ··· });  
              目前websocket的缺点是不兼容低版本浏览器。 WebSocket 有没有可能取代 AJAX ?

喜欢这篇文章?欢迎打赏~~

Websocket(一)——原理及基本属性和方法

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwsdgs.html