webScoke api 介绍

发现宝藏

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【宝藏入口】。


WebSocket API 是一种基于 Web 的通信协议,它为浏览器和服务器之间提供了全双工(双向)通信通道,使得客户端和服务器可以在单个 TCP 连接上进行双向数据交换。WebSocket 在实时通信应用中尤其重要,例如在线聊天、实时游戏、股票价格更新、协作编辑等场景。

WebSocket API 简介

WebSocket API 允许浏览器和服务器之间建立一个持久的、双向的通信连接。WebSocket 连接一旦建立,数据可以在浏览器与服务器之间自由地流动,直到连接被关闭。

WebSocket 协议的特点:

  • 全双工通信:WebSocket 提供双向的、实时的通信,服务器和客户端都可以随时发送消息。
  • 低延迟:与传统的 HTTP 请求-响应模型不同,WebSocket 的通信不需要每次都重新建立连接,从而减少了通信延迟。
  • 单一连接:WebSocket 使用单一的 TCP 连接来进行通信,这意味着可以节省带宽和计算资源。

WebSocket API 使用

WebSocket API 提供了简单的 JavaScript 接口,客户端通过该接口与 WebSocket 服务器进行交互。

1. 创建 WebSocket 连接

WebSocket 对象是建立与服务器连接的核心,它通过 WebSocket 构造函数来创建一个 WebSocket 实例。连接的建立需要指定一个服务器地址,该地址通常是一个以 ws://wss://(加密版本)开头的 URL。

javascript 复制代码
let socket = new WebSocket('wss://example.com/socket');  // 使用 wss 进行加密连接

2. WebSocket 事件

WebSocket 对象触发多个事件,开发者可以监听这些事件来处理连接、消息接收、错误等情况。

  • open:连接成功建立时触发。
  • message:收到服务器发送的消息时触发。
  • error:发生错误时触发。
  • close:连接关闭时触发。
示例代码
javascript 复制代码
let socket = new WebSocket('wss://example.com/socket');

// 监听连接成功事件
socket.onopen = function(event) {
  console.log('WebSocket is open now.');
  // 可以在连接成功后发送消息
  socket.send('Hello, server!');
};

// 监听接收到消息事件
socket.onmessage = function(event) {
  console.log('Message from server:', event.data);
};

// 监听错误事件
socket.onerror = function(error) {
  console.error('WebSocket Error:', error);
};

// 监听连接关闭事件
socket.onclose = function(event) {
  if (event.wasClean) {
    console.log(`Closed cleanly, code=${event.code}, reason=${event.reason}`);
  } else {
    console.error('Connection closed unexpectedly');
  }
};

3. 发送消息

一旦 WebSocket 连接成功建立(即触发 open 事件),你可以使用 send() 方法向服务器发送数据。WebSocket 允许发送文本数据(如字符串)和二进制数据(如 Blob 或 ArrayBuffer)。

javascript 复制代码
socket.send('Hello, server!');

4. 接收消息

当 WebSocket 服务器发送消息时,客户端会触发 message 事件,并可以通过 event.data 获取到消息内容。

javascript 复制代码
socket.onmessage = function(event) {
  console.log('Received:', event.data);
};

5. 关闭连接

WebSocket 连接可以通过 close() 方法主动关闭,也可以等待服务器主动关闭连接。关闭连接时,可以指定一个状态码和原因(可选)。

javascript 复制代码
socket.close(1000, 'Done with the session');
  • 1000:表示正常关闭连接的状态码。
  • 'Done with the session':可以提供关闭的原因。

6. 状态码

WebSocket 连接关闭时,可以使用以下标准状态码来描述连接的关闭原因:

  • 1000 - 正常关闭连接。
  • 1001 - 服务器关闭连接。
  • 1002 - 协议错误。
  • 1003 - 服务器收到不支持的消息类型。
  • 1006 - 连接意外关闭,通常是由于网络问题或客户端错误。

WebSocket 连接的生命周期

  1. 连接建立 :客户端通过 new WebSocket() 请求连接服务器,触发 open 事件。
  2. 通信进行 :客户端和服务器可以通过 send()message 事件相互发送消息,保持通信。
  3. 关闭连接 :通信完成后,客户端或服务器可以调用 close() 方法关闭连接。

WebSocket 与传统 HTTP 的对比

特性 WebSocket HTTP
连接方式 持久连接(保持开放) 短连接(每个请求都会新建连接)
双向通信 支持全双工通信(客户端和服务器可以同时发送消息) 单向通信(客户端请求,服务器响应)
延迟 较低 较高,需每次建立连接
适用场景 实时通信(在线聊天、股票数据更新、多人游戏等) 常规的请求-响应式应用
协议 ws://wss:// http://https://

适用场景

WebSocket 适用于需要实时、高效、双向通信的应用场景,以下是一些常见的使用场景:

  1. 实时聊天应用:WebSocket 允许即时消息传输,不需要轮询。
  2. 在线多人游戏:低延迟的双向通信是多人在线游戏中的关键需求。
  3. 金融应用(如股票/外汇实时行情):WebSocket 提供了一个快速和可靠的通道,用于实时接收价格更新。
  4. 协作工具:例如 Google Docs 或其他协作编辑工具,可以实时同步编辑内容。
  5. 物联网(IoT):WebSocket 可以在设备与服务器之间提供持久的通信通道,用于实时数据传输。

安全性

WebSocket 支持加密通信,使用 wss:// 协议(WebSocket Secure),类似于 HTTPS。ws://wss:// 之间的区别是,wss:// 使用 SSL/TLS 加密,确保数据的传输安全。与 HTTP 不同,WebSocket 的加密和安全性更多依赖于底层的 TLS/SSL 协议。

相关推荐
崔庆才丨静觅4 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby60614 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了5 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅5 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅5 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
崔庆才丨静觅5 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment5 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅6 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端
剪刀石头布啊6 小时前
jwt介绍
前端
爱敲代码的小鱼6 小时前
AJAX(异步交互的技术来实现从服务端中获取数据):
前端·javascript·ajax