ایجاد کلاینت websocket و مدیریت پیام ها

  • مدرس : علی بیگدلی
  • تاریخ انتشار: 1404/06/25
  • تعداد بازدید: 2

کلاینت WebSocket در پایتون به شما امکان می‌دهد با سرورهای WebSocket ارتباط دوطرفه برقرار کرده و داده‌ها را در زمان واقعی ارسال و دریافت کنید. این کلاینت می‌تواند برای چت آنلاین، داشبوردهای زنده، بازی‌های آنلاین یا سیستم‌های اعلان استفاده شود.

کتابخانه‌های مورد نیاز

برای ایجاد کلاینت WebSocket ساده از کتابخانه websockets و asyncio استفاده می‌کنیم:

  • websockets: مدیریت اتصال WebSocket و ارسال/دریافت پیام
  • asyncio: اجرای همزمان کد و مدیریت حلقه‌های غیرهمزمان

نمونه کد کلاینت

import asyncio
import websockets

async def websocket_client():
    uri = "ws://127.0.0.1:8000/ws"
    async with websockets.connect(uri) as websocket:
        print("Connected to server!")
        while True:
            message = input("Enter your message: ")
            await websocket.send(message)
            response = await websocket.recv()
            print(f"Server response: {response}")

asyncio.run(websocket_client())

توضیح کد

  • با websockets.connect(uri) به سرور WebSocket متصل می‌شویم.
  • با دستور await websocket.send(message) پیام خود را به سرور ارسال می‌کنیم.
  • با دستور await websocket.recv() پاسخ سرور را دریافت کرده و نمایش می‌دهیم.
  • حلقه while اجازه می‌دهد چندین پیام متوالی ارسال و دریافت شود بدون قطع شدن اتصال.

مثال‌های کاربردی

  • چت آنلاین: کاربران می‌توانند پیام‌های خود را به سرور ارسال کنند و پیام‌های دیگر کاربران را دریافت کنند.
  • داشبورد زنده: داده‌های لحظه‌ای مثل نرخ ارز، وضعیت سرورها یا حسگرهای IoT از سرور دریافت شده و نمایش داده می‌شوند.
  • بازی آنلاین: موقعیت بازیکنان و اتفاقات بازی به صورت Real-time بین سرور و کلاینت‌ها منتقل می‌شود.
  • سیستم اعلان: سرور می‌تواند اطلاعیه‌ها یا هشدارها را بدون درخواست کلاینت به آن‌ها ارسال کند.

نکات مهم

  • برای کلاینت‌های پایتون، همیشه اتصال WebSocket را در بلوک async with مدیریت کنید تا منابع به درستی آزاد شوند.
  • از حلقه‌های asyncio برای ارسال و دریافت همزمان پیام‌ها استفاده کنید.
  • برای مدیریت اتصال‌های طولانی مدت، بررسی کنید که در صورت قطع شدن اتصال، کلاینت بتواند دوباره متصل شود.
  • برای انتقال داده‌های پیچیده، می‌توانید پیام‌ها را به صورت JSON ارسال و دریافت کنید.

ثبت دیدگاه


نکته: آدرس ایمیل شما منتشر نخواهد شد

دیدگاه کاربران (0)


هیچ دیدگاهی ثبت نشده است. می‌توانید اولین نفر باشید.