کلاینت 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 ارسال و دریافت کنید.