websocket使用

admin 37 0

WebSocket 是一种网络通信协议,它允许在单个 TCP 连接上进行全双工通信,与 HTTP 协议不同,WebSocket 协议在建立连接后,服务器可以主动向客户端推送数据,而不需要客户端再发起请求,这种特性使得 WebSocket 非常适合用于实时通信,例如在线游戏、聊天应用等场景。

下面是一个简单的 WebSocket 服务器和客户端的 Python 代码示例:

### WebSocket 服务器

import asyncio
import websockets

async def echo(websocket, path):
    async for message in websocket:
        await websocket.send(f"Echo: {message}")

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

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

这个服务器会监听本地的 8765 端口,当有客户端连接时,它会将收到的消息原样返回。

### WebSocket 客户端

import asyncio
import websockets

async def hello():
    uri = "ws://localhost:8765"
    async with websockets.connect(uri) as websocket:
        await websocket.send("Hello, WebSocket!")
        response = await websocket.recv()
        print(f"Received: {response}")

asyncio.get_event_loop().run_until_complete(hello())

这个客户端会连接到本地的 8765 端口,向服务器发送一条 "Hello, WebSocket!" 的消息,然后等待接收服务器的回应。

运行服务器和客户端的代码后,你可以看到客户端收到了服务器的回应 "Echo: Hello, WebSocket!",这只是一个非常简单的示例,实际使用中你可能需要处理更复杂的逻辑,例如处理多个客户端连接、实现心跳检测、处理错误等,不过这已经为你提供了一个入门的基础。