Xây dựng Máy chủ WebSocket đơn giản trong Python

Xây dựng máy chủ WebSocket trong Python cho phép bạn thiết lập một kênh giao tiếp hai chiều thời gian thực với các máy khách. Dưới đây là hướng dẫn chi tiết và giải thích từng thành phần để xây dựng một máy chủ WebSocket đơn giản sử dụng thư viện websockets.

Bước 1: Cài đặt Thư viện WebSocket

Trước hết, bạn cần cài đặt thư viện websockets bằng lệnh sau trong terminal:

pip install websockets

Bước 2: Tạo Máy chủ WebSocket

Dưới đây là một ví dụ về cách tạo máy chủ WebSocket trong Python:

import asyncio
import websockets

# Hàm xử lý kết nối WebSocket
async def handle_connection(websocket, path):
    async for message in websocket:
        # Xử lý dữ liệu và gửi phản hồi
        response = f"Server received: {message}"
        await websocket.send(response)

# Khởi tạo máy chủ WebSocket
start_server = websockets.serve(handle_connection, "localhost", 8765)

# Chạy máy chủ trong vòng lặp sự kiện
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()

Trong đoạn mã trên:

  • async def handle_connection(websocket, path):: Đây là hàm xử lý kết nối WebSocket. Mỗi khi máy khách kết nối, hàm này sẽ được gọi để xử lý giao tiếp.

  • async for message in websocket:: Hàm xử lý chạy trong vòng lặp để lắng nghe các tin nhắn từ máy khách thông qua kết nối WebSocket.

  • await websocket.send(response): Hàm này gửi phản hồi từ máy chủ đến máy khách thông qua kết nối WebSocket.

  • websockets.serve(handle_connection, "localhost", 8765): Hàm này tạo máy chủ WebSocket lắng nghe kết nối từ địa chỉ localhost và cổng 8765.

Bước 3: Kiểm tra Máy chủ

Sau khi bạn triển khai mã máy chủ, nó sẽ lắng nghe kết nối từ các máy khách trên cổng 8765. Bạn có thể thử kết nối tới máy chủ bằng cách sử dụng mã khách WebSocket hoặc các công cụ kiểm tra trực tuyến.

Kết luận

Bằng cách thực hiện các bước trên, bạn đã xây dựng thành công một máy chủ WebSocket đơn giản trong Python. Máy chủ này tạo nền tảng cho việc xây dựng các ứng dụng thời gian thực và tương tác giữa máy chủ và máy khách thông qua giao thức WebSocket.