ایجاد سرور websocket با FastAPI

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

برای ایجاد سرور WebSocket با FastAPI ابتدا باید محیط توسعه آماده شود. این مرحله شامل نصب پایتون، ایجاد محیط مجازی و نصب کتابخانه‌های مورد نیاز است. رعایت این مراحل باعث می‌شود پروژه شما قابل مدیریت باشد و از بروز مشکلات تداخل کتابخانه‌ها جلوگیری شود.

نصب پایتون

اطمینان حاصل کنید که پایتون نسخه 3.8 یا بالاتر نصب شده باشد. نسخه‌های پایین‌تر ممکن است با کتابخانه‌های مورد استفاده سازگار نباشند.

python --version

اگر پایتون نصب نیست، می‌توانید آن را از وب‌سایت رسمی پایتون دانلود و نصب کنید.

ایجاد محیط مجازی

برای جلوگیری از تداخل کتابخانه‌ها بین پروژه‌های مختلف، توصیه می‌شود از محیط مجازی استفاده کنید. با دستور زیر یک محیط مجازی ایجاد کنید:

python -m venv venv

برای فعال‌سازی محیط مجازی:

# ویندوز
venv\Scripts\activate

# لینوکس و مک

source venv/bin/activate 

پس از فعال شدن محیط مجازی، هر کتابخانه‌ای که نصب شود فقط برای این پروژه خواهد بود.

نصب FastAPI و uvicorn

برای اجرای سرور FastAPI و پشتیبانی WebSocket به کتابخانه‌های زیر نیاز داریم:

  • FastAPI: فریم‌ورک اصلی برای ساخت API و WebSocket
  • uvicorn: سرور ASGI برای اجرای پروژه

برای نصب همه موارد، دستور زیر را اجرا کنید:

pip install fastapi[all]

نمونه کد سرور WebSocket

پس از نصب ماژول‌ها، یک فایل main.py ایجاد کنید و کد زیر را در آن قرار دهید:

from fastapi import FastAPI, WebSocket

app = FastAPI()

@app.websocket("/ws")
async def websocket_endpoint(websocket: WebSocket):
    await websocket.accept()
    while True:
        data = await websocket.receive_text()
        await websocket.send_text(f"پیام شما دریافت شد: {data}")

این سرور یک endpoint WebSocket در مسیر /ws ایجاد می‌کند. کلاینت می‌تواند به آن متصل شود و پیام ارسال و دریافت کند.

اجرای سرور

برای اجرای سرور FastAPI از دستور زیر استفاده کنید:

fastapi dev --host 0.0.0.0 --port 8000

این دستور سرور را روی تمام آدرس‌های شبکه موجود و پورت 8000 اجرا می‌کند و امکان اتصال کلاینت‌ها از خارج از localhost را فراهم می‌کند.

نکات مهم

  • استفاده از محیط مجازی باعث می‌شود پروژه‌ها از هم مستقل باشند و مشکلات تداخل کتابخانه کاهش یابد.
  • نسخه پایتون و کتابخانه‌ها را مشخص نگه دارید تا پروژه روی سیستم‌های مختلف بدون مشکل اجرا شود.
  • برای پروژه‌های بزرگ، ساختار پروژه را طوری سازماندهی کنید که پوشه‌های جداگانه برای ماژول‌ها و فایل‌ها داشته باشد.

 

ثبت دیدگاه


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

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


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