การส่งและรับข้อความผ่าน WebSocket in Python

WebSocket การสื่อสารช่วยให้คุณสามารถส่งและรับข้อความแบบเรียลไทม์ระหว่างเซิร์ฟเวอร์และไคลเอ็นต์ ต่อไปนี้เป็นคำแนะนำโดยละเอียดเกี่ยวกับวิธีการบรรลุผลสำเร็จใน Python การใช้ websockets ไลบรารี

ขั้นตอนที่ 1: ติดตั้ง WebSocket ไลบรารี

ขั้นแรก ติดตั้ง websockets ไลบรารีโดยเรียกใช้คำสั่งต่อไปนี้ใน terminal:

pip install websockets

ขั้นตอนที่ 2: การส่งและรับข้อความบนเซิร์ฟเวอร์

ด้านล่างนี้คือตัวอย่างวิธีการส่งและรับข้อความบน WebSocket เซิร์ฟเวอร์:

import asyncio  
import websockets  
  
# WebSocket connection handling function  
async def handle_connection(websocket, path):  
    async for message in websocket:  
        await websocket.send(f"Server received: {message}")  
  
# Initialize the WebSocket server  
start_server = websockets.serve(handle_connection, "localhost", 8765)  
  
# Run the server within the event loop  
asyncio.get_event_loop().run_until_complete(start_server)  
asyncio.get_event_loop().run_forever()  

ในข้อมูลโค้ด:

  • async def handle_connection(websocket, path):: ฟังก์ชันนี้จัดการ WebSocket การเชื่อมต่อ เมื่อไคลเอนต์ส่งข้อความ ฟังก์ชันนี้จะรับฟังและส่งการตอบกลับกลับ

  • async for message in websocket:: การวนซ้ำนี้จะรับฟังข้อความจากไคลเอนต์ผ่านการ WebSocket เชื่อมต่อ

  • await websocket.send(f"Server received: {message}"): ฟังก์ชันนี้จะส่งการตอบสนองจากเซิร์ฟเวอร์กลับไปยังไคลเอนต์ผ่านการ WebSocket เชื่อมต่อ

ขั้นตอนที่ 3: การส่งและรับข้อความจากลูกค้า

ต่อไปนี้คือตัวอย่างวิธีที่ไคลเอนต์ส่งและรับข้อความจาก WebSocket เซิร์ฟเวอร์:

import asyncio  
import websockets  
  
async def send_and_receive():  
    async with websockets.connect("ws://localhost:8765") as websocket:  
        await websocket.send("Hello, WebSocket!")  
        response = await websocket.recv()  
        print("Received:", response)  
  
asyncio.get_event_loop().run_until_complete(send_and_receive())  

ในข้อมูลโค้ด:

  • async with websockets.connect("ws://localhost:8765") as websocket:: นี่คือวิธีที่ไคลเอนต์เชื่อมต่อกับ WebSocket เซิร์ฟเวอร์ ลูกค้าสร้างการเชื่อมต่อกับที่ อยู่ localhost และพอร์ต 8765

  • await websocket.send("Hello, WebSocket!"): ลูกค้าส่งข้อความ  ไปยังเซิร์ฟเวอร์ Hello, WebSocket!

  • response = await websocket.recv(): ไคลเอ็นต์รอรับการตอบกลับจากเซิร์ฟเวอร์ผ่าน WebSocket การเชื่อมต่อ

บทสรุป

เมื่อทำตามขั้นตอนและทำความ เข้าใจ แต่ละส่วนของตัวอย่าง คุณจะได้เรียนรู้วิธีการส่งและรับข้อความผ่าน WebSocket in Python สิ่งนี้เปิดโอกาสสำหรับการสร้างแอปพลิเคชันตามเวลาจริงและการแลกเปลี่ยนข้อมูลอย่างต่อเนื่องระหว่างเซิร์ฟเวอร์และไคลเอนต์