WebSocket 是一种网络通信协议,它允许服务器和客户端之间建立一个持久的连接,进行双向通信。以下是 WebSocket 的基本概念和入门指南。

什么是 WebSocket?

WebSocket 是一种在单个 TCP 连接上进行全双工通讯的协议。它提供了一种在单个连接上传输数据的机制,使得服务器和客户端可以实时地双向通信。

为什么使用 WebSocket?

  • 实时通信:WebSocket 允许服务器和客户端之间进行实时通信,适用于需要快速响应的应用场景,如在线游戏、实时聊天等。
  • 减少HTTP请求:与传统的轮询、长轮询相比,WebSocket 只需要一个持久的连接,减少了 HTTP 请求的次数,提高了效率。

WebSocket 工作原理

  1. 握手:客户端发送一个特殊的 HTTP 请求,服务器响应后,双方建立 WebSocket 连接。
  2. 数据传输:建立连接后,客户端和服务器可以通过这个连接发送数据。

WebSocket 入门

创建 WebSocket 服务器

以下是一个简单的 Python WebSocket 服务器示例:

import asyncio
import websockets

async def echo(websocket, path):
    async for message in websocket:
        await websocket.send(message)

start_server = websockets.serve(echo, "localhost", 8765)

asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()

创建 WebSocket 客户端

以下是一个简单的 JavaScript WebSocket 客户端示例:

const ws = new WebSocket("ws://localhost:8765");

ws.onopen = function(event) {
  console.log("WebSocket 连接已建立");
};

ws.onmessage = function(event) {
  console.log("接收到消息: " + event.data);
};

ws.onclose = function(event) {
  console.log("WebSocket 连接已关闭");
};

扩展阅读

更多关于 WebSocket 的信息,您可以访问以下链接:

WebSocket 示例