JavaScript WebSocket 简明入门教程:API、属性与完整示例

作者:小括号时间:2026-10-28 09:18:30浏览:94

本文介绍如何使用 JavaScript 的 WebSocket API 实现浏览器与服务器之间的全双工通信。内容涵盖 WebSocket 对象的创建、核心属性(如 readyState)、事件处理(open、message、close)及常用方法,并提供了一个完整的 HTML 示例代码,展示如何检测浏览器支持、建立连接、发送消息及处理响应。

WebSocket 连接与通信基础

在理解网络套接字与 Web 服务器的连接机制后,即可实现从浏览器向服务器发送数据,并接收服务器返回的响应。

WebSocket API 与对象创建

以下是创建 WebSocket 对象的 API 说明:

var Socket = new WebSocket(url, [protocal] );


上述代码中,第一个参数指定要连接的 URL 地址;第二个参数为可选参数,用于指定服务器支持的子协议。

WebSocket 属性、事件与方法详解

WebSocket 对象包含以下属性:

属性 说明
Socket.readyState readyState的代表的ReadOnly属性的连接状态。它可以有以下值:
  1. 一个0值表示该连接尚未建立。

  2. 值为1表示连接建立和沟通是可能的。

  3. 值为2表示连接是通过将结束握手。

  4. 值为3表示连接已关闭或无法打开。

Socket.bufferedAmount 读属性的bufferedAmount代表文本的字节数,utf - 8的排队使用send()方法。

WebSocket 对象触发以下事件:

事件 处理程序 说明
open Socket.onopen 此事件发生在套接字建立连接。
message Socket.onmessage 此事件发生时,客户端收到来自服务器的数据。
error Socket.onerror 此事件发生时有任何通信错误。
close Socket.onclose 此事件发生在连接关闭。

WebSocket 对象提供以下方法:

方法 说明
Socket.send() send(data)方法用来连接传输数据。
Socket.close() close()方法将被用于终止任何现有的连接。

WebSocket 完整使用示例

以下是一个 WebSocket 的完整使用示例:

示例代码如下:

<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript">
function WebSocketTest()
{
if ("WebSocket" in window)
  {
alert("WebSocket is supported by your Browser!");
// Let us open a web socket
var ws = new WebSocket("ws://localhost:9998/echo");
ws.onopen = function()
     {
// Web Socket is connected, send data using send()
ws.send("Message to send");
alert("Message is sent...");
     };
ws.onmessage = function (evt)
     {
var received_msg = evt.data;
alert("Message is received...");
     };
ws.onclose = function()
     {
// websocket is closed.
alert("Connection is closed...");
     };
  }
else
  {
// The browser doesn't support WebSocket
alert("WebSocket NOT supported by your Browser!");
  }
}
</script>
</head>
<body>
<div id="sse">
<a href="javascript:WebSocketTest()">Run WebSocket</a>
</div>
</body>
</html>
作者最新文章