میخواید بدونید WSGI و ASGI چین؟ خب بشنوید:
· WSGI مثل یه پیشخدمت تنها توی رستورانه!
هر بار یه سفارش میگیره، میره به آشپزخونه، برمیگرده تحویل میده. اگه ۱۰۰ نفر بیان، یکییکی سرویس میشَن. (همزمان = نه!)
· ASGI ولی مثل یه تیم پیشخدمت با واکیتاکیه!
چندتا سفارش رو همزمان میگیرن، یه نفر داره آشپزی میکنه، یه نفر داره پیشدست میده، همه با هم در ارتباطن. (همزمان = آره!)
مثال سادهتر:
وبسرویسی که از WSGI استفاده کنه، مثل صف نانواییست: یکی بیاد نون بگیره، بعدی صبر کنه.
ولی ASGI مثل چند صندوق بانک میمونه: چند نفر همزمان کارشون رو انجام میدن.
خلاصه:
· WSGI = قدیمی، ساده، همگام (مثل Django قدیم)
· ASGI = جدید، سریع، ناهمگام (مثل FastAPI، Django جدید)
اینا جزو مفاهیم پایهی جنگو هستن، اما محدود به جنگو نیستن؛ استانداردِ کل وبپایتونان.ارتباطش با جنگو اینجاست:· اون فایل wsgi.py که کنار settings.py میبینی، همون دروازهی ورود سرورهای قدیمیه (مثل Gunicorn).· جنگو از نسخهی ۳ به بعد، asgi.py رو هم رسماً داره تا بتونه WebSocket و کارهای زنده (مثل چت) رو پشتیبانی کنه.به زبان خود جنگو:WSGI مثل موتور ۴ سیلندر قدیمیه که روش کار میکرد، ASGI هم موتور توربوی جدیدیه که روش سوار شدن. خود جنگو هر دو رو بلده، فقط بستگی به پروژهات داره که کدوم رو روشن کنی! 😄پس اگه تازهکاری، بدون که حداقل اسمشون رو شنیدن، خودش یه قدم بزرگیهاگه پروژهات چتزنده یا WebSocket داره، برو سراغ ASGI،
وگرنه WSGI کافیه
@MPL_Code