ถ่ายทอดข้อมูลตามเวลาจริงด้วย Python WebSocket

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

ติดตั้ง WebSocket ห้องสมุด

ใช้ websockets ไลบรารีเพื่อใช้งาน WebSocket เซิร์ฟเวอร์และไคลเอนต์ ติดตั้งไลบรารีนี้โดยใช้ pip:

pip install websockets

สร้าง WebSocket เซิร์ฟเวอร์

เซิร์ฟเวอร์ WebSocket จะส่งข้อมูลตามเวลาจริงไปยังไคลเอนต์ที่เชื่อมต่อทั้งหมด

import asyncio  
import websockets  
  
# Function to send real-time data from the server  
async def send_real_time_data(websocket, path):  
    while True:  
        real_time_data = get_real_time_data()  # Get real-time data from a source  
        await websocket.send(real_time_data)  
        await asyncio.sleep(1)  # Send data every second  
  
start_server = websockets.serve(send_real_time_data, "localhost", 8765)  
asyncio.get_event_loop().run_until_complete(start_server)  
asyncio.get_event_loop().run_forever()  

สร้าง WebSocket ลูกค้า

ลูกค้า WebSocket จะฟังและรับข้อมูลตามเวลาจริงจากเซิร์ฟเวอร์

import asyncio  
import websockets  
  
async def receive_real_time_data():  
    async with websockets.connect("ws://localhost:8765") as websocket:  
        while True:  
            real_time_data = await websocket.recv()  
            print("Received real-time data:", real_time_data)  
  
asyncio.get_event_loop().run_until_complete(receive_real_time_data())  

เรียกใช้แอปพลิเคชัน

เรียกใช้ WebSocket รหัสเซิร์ฟเวอร์ก่อน แล้วจึงเรียกใช้ WebSocket รหัสไคลเอนต์ คุณจะเห็นข้อมูลตามเวลาจริงที่ออกอากาศจากเซิร์ฟเวอร์และไคลเอ็นต์ได้รับอย่างต่อเนื่อง

ปรับแต่งและขยาย

จากที่นี่ คุณสามารถปรับแต่งและขยายแอปพลิเคชันของคุณโดยเพิ่มคุณสมบัติต่างๆ เช่น การรับรองความถูกต้อง การกรองข้อมูล การจัดรูปแบบข้อมูล และอื่นๆ

บทสรุป:

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