อ่าน 2 นาที
อินเทอร์เฟซเกตเวย์เซิร์ฟเวอร์แบบอะซิงโครนัส
Asynchronous Server Gateway Interface ( ASGI ) คือรูปแบบการเรียกใช้ฟังก์ชันสำหรับ เว็บเซิร์ฟเวอร์ ในการส่งต่อคำขอไปยัง เฟรมเวิร์กและแอปพลิเคชัน Python ที่รองรับ...
อินเทอร์เฟซเกตเวย์เซิร์ฟเวอร์แบบอะซิงโครนัส
| เวอร์ชั่น | 3.0 |
|---|---|
| นักพัฒนา | ทีม ASGI |
| วันที่วางจำหน่าย | 2019-03-04 [ 1 ] |
| เว็บไซต์ | asgi.readthedocs.io/en/latest/specs/index.html |
| ใบอนุญาต | สาธารณสมบัติ[ 2 ] |
| สถานะ | ร่าง |
Asynchronous Server Gateway Interface ( ASGI ) คือรูปแบบการเรียกใช้ฟังก์ชันสำหรับเว็บเซิร์ฟเวอร์ในการส่งต่อคำขอไปยัง เฟรมเวิร์กและแอปพลิเคชัน Pythonที่รองรับ การทำงานแบบอะซิงโคร นัส ASGIถูกสร้างขึ้นเพื่อทดแทนWeb Server Gateway Interface (WSGI)
ในขณะที่WSGIให้มาตรฐานสำหรับ แอปพลิเคชัน Python แบบซิงโครนัส ASGI ให้มาตรฐานสำหรับทั้งแอปพลิเคชันแบบ อะซิงโครนั สและซิงโครนัส โดยมีการใช้งานที่เข้ากันได้กับ WSGI และมีเซิร์ฟเวอร์และเฟรมเวิร์กแอปพลิเคชันหลายแบบ
ตัวอย่าง
แอปพลิเคชัน " Hello, World! " ที่เข้ากันได้กับ ASGI ซึ่งเขียนด้วยภาษา Python :
async def application ( scope , receive , send ):เหตุการณ์= รอรับ()...await send ({ "type" : "websocket.send" , ... })ที่ไหน:
- บรรทัดที่ 1 กำหนดฟังก์ชันแบบอะซิงโครนัสชื่อ
applicationซึ่งรับพารามิเตอร์สามตัว (ต่างจากใน WSGI ที่รับเพียงสองตัว) ได้แก่scope,receiveและsendscopeคือไฟล์dictที่บรรจุรายละเอียดเกี่ยวกับการเชื่อมต่อปัจจุบัน เช่น โปรโตคอล ส่วนหัว เป็นต้นreceiveและsendเป็นฟังก์ชันแบบอะซิงโครนัสที่ช่วยให้แอปพลิเคชันรับและส่งข้อความจาก/ไปยังไคลเอ็นต์ได้
- บรรทัดที่ 2 รับเหตุการณ์ขาเข้า เช่น คำขอ HTTP หรือข้อความ WebSocket
awaitคำหลักถูกใช้เนื่องจากการดำเนินการเป็นแบบอะซิงโครนัส - บรรทัดที่ 4 ส่งการตอบกลับไปยังไคลเอ็นต์แบบอะซิงโครนัส ในกรณีนี้คือการสื่อสารผ่าน WebSocket
ความเข้ากันได้ของ Web Server Gateway Interface (WSGI)
ASGI ถูกออกแบบมาให้เป็นซูเปอร์เซ็ตของWSGI เช่นกัน และมีวิธีการแปลงระหว่างทั้งสองที่กำหนดไว้ ทำให้ แอปพลิเคชัน WSGIสามารถทำงานภายในเซิร์ฟเวอร์ ASGI ได้ผ่านตัวห่อการแปลง (มีให้ในไลบรารี asgiref) สามารถใช้เธรดพูลเพื่อเรียกใช้แอปพลิเคชันWSGI แบบซิงโครนัส แยกจากลูปเหตุการณ์แบบอะซิ งโครนัสได้
ดูเพิ่มเติม
ลิงก์ภายนอก
- เอกสารประกอบอินเทอร์เฟซเกตเวย์เซิร์ฟเวอร์แบบอะซิงโครนัส
- ข้อกำหนดอินเทอร์เฟซเกตเวย์เซิร์ฟเวอร์แบบอะซิงโครนัส
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ อินเทอร์เฟซเกตเวย์เซิร์ฟเวอร์แบบอะซิงโครนัส
Asynchronous Server Gateway Interface ( ASGI ) คือรูปแบบการเรียกใช้ฟังก์ชันสำหรับ เว็บเซิร์ฟเวอร์ ในการส่งต่อคำขอไปยัง เฟรมเวิร์กและแอปพลิเคชัน Python ที่รองรับ...
ตัวอย่าง
แอปพลิเคชัน " Hello, World! " ที่เข้ากันได้กับ ASGI ซึ่งเขียนด้วย ภาษา Python :
ความเข้ากันได้ของ Web Server Gateway Interface (WSGI)
ASGI ถูกออกแบบมาให้เป็นซูเปอร์เซ็ตของ WSGI เช่นกัน และมีวิธีการแปลงระหว่างทั้งสองที่กำหนดไว้ ทำให้ แอปพลิเคชัน WSGI สามารถทำงานภายในเซิร์ฟเวอร์ ASGI ได้ผ่านตัวห่อการแปลง (มีให้ในไลบรารี asgiref) สามารถใช้เธรดพูลเพื่อเรียกใช้แอปพลิเคชัน WSGI แบบซิงโครนัส...
ดูเพิ่มเติม
การเปรียบเทียบเฟรมเวิร์กเว็บ ฟาสต์ซีจีไอ ไพธอน (ภาษาโปรแกรม) เว็บเซิร์ฟเวอร์เกตเวย์อินเทอร์เฟซ (WSGI)