กลับไปหน้าบทความ

อ่าน 2 นาที

อินเทอร์เฟซเกตเวย์เซิร์ฟเวอร์แบบอะซิงโครนัส

Asynchronous Server Gateway Interface ( ASGI ) คือรูปแบบการเรียกใช้ฟังก์ชันสำหรับ เว็บเซิร์ฟเวอร์ ในการส่งต่อคำขอไปยัง เฟรมเวิร์กและแอปพลิเคชัน Python ที่รองรับ...

อินเทอร์เฟซเกตเวย์เซิร์ฟเวอร์แบบอะซิงโครนัส

ข้อกำหนด ASGI
เวอร์ชั่น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และsend
    • scopeคือไฟล์dictที่บรรจุรายละเอียดเกี่ยวกับการเชื่อมต่อปัจจุบัน เช่น โปรโตคอล ส่วนหัว เป็นต้น
    • receiveและsendเป็นฟังก์ชันแบบอะซิงโครนัสที่ช่วยให้แอปพลิเคชันรับและส่งข้อความจาก/ไปยังไคลเอ็นต์ได้
  • บรรทัดที่ 2 รับเหตุการณ์ขาเข้า เช่น คำขอ HTTP หรือข้อความ WebSocket awaitคำหลักถูกใช้เนื่องจากการดำเนินการเป็นแบบอะซิงโครนัส
  • บรรทัดที่ 4 ส่งการตอบกลับไปยังไคลเอ็นต์แบบอะซิงโครนัส ในกรณีนี้คือการสื่อสารผ่าน WebSocket

ความเข้ากันได้ของ Web Server Gateway Interface (WSGI)

ASGI ถูกออกแบบมาให้เป็นซูเปอร์เซ็ตของWSGI เช่นกัน และมีวิธีการแปลงระหว่างทั้งสองที่กำหนดไว้ ทำให้ แอปพลิเคชัน WSGIสามารถทำงานภายในเซิร์ฟเวอร์ ASGI ได้ผ่านตัวห่อการแปลง (มีให้ในไลบรารี asgiref) สามารถใช้เธรดพูลเพื่อเรียกใช้แอปพลิเคชันWSGI แบบซิงโครนัส แยกจากลูปเหตุการณ์แบบอะซิ งโครนัสได้

ดูเพิ่มเติม

  • เอกสารประกอบอินเทอร์เฟซเกตเวย์เซิร์ฟเวอร์แบบอะซิงโครนัส
  • ข้อกำหนดอินเทอร์เฟซเกตเวย์เซิร์ฟเวอร์แบบอะซิงโครนัส
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Asynchronous_Server_Gateway_Interface&oldid=1355916963 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ อินเทอร์เฟซเกตเวย์เซิร์ฟเวอร์แบบอะซิงโครนัส

Asynchronous Server Gateway Interface ( ASGI ) คือรูปแบบการเรียกใช้ฟังก์ชันสำหรับ เว็บเซิร์ฟเวอร์ ในการส่งต่อคำขอไปยัง เฟรมเวิร์กและแอปพลิเคชัน Python ที่รองรับ...

ตัวอย่าง

แอปพลิเคชัน " Hello, World! " ที่เข้ากันได้กับ ASGI ซึ่งเขียนด้วย ภาษา Python :

ความเข้ากันได้ของ Web Server Gateway Interface (WSGI)

ASGI ถูกออกแบบมาให้เป็นซูเปอร์เซ็ตของ WSGI เช่นกัน และมีวิธีการแปลงระหว่างทั้งสองที่กำหนดไว้ ทำให้ แอปพลิเคชัน WSGI สามารถทำงานภายในเซิร์ฟเวอร์ ASGI ได้ผ่านตัวห่อการแปลง (มีให้ในไลบรารี asgiref) สามารถใช้เธรดพูลเพื่อเรียกใช้แอปพลิเคชัน WSGI แบบซิงโครนัส...

ดูเพิ่มเติม

การเปรียบเทียบเฟรมเวิร์กเว็บ ฟาสต์ซีจีไอ ไพธอน (ภาษาโปรแกรม) เว็บเซิร์ฟเวอร์เกตเวย์อินเทอร์เฟซ (WSGI)