مرجع المستمع

إعدادات عنوان المستمع والبروتوكول لـ⁦ServerBlock.listen⁩.

تربط قيمة ⁦Listen⁩ الخادم بعنوان محلي (مقبس ⁦TCP⁩ أو ⁦Unix⁩) وتتحكم في إصدارات بروتوكول ⁦HTTP⁩ المُتفاوض عليها على ذلك المقبس. في معظم الحالات، الاختصار النصي (مثل ⁦":8080"⁩) كافٍ؛ استخدم صيغة الكائن الكاملة عندما تحتاج لتخصيص اختيار البروتوكول.

> هذه الصفحة مُولَّدة تلقائياً من مخطط ⁦PKL⁩. راجع الدليل لأمثلة الاستخدام.

الأنواع

Protocol

معرف إصدار بروتوكول ⁦HTTP⁩ لتفاوض بروتوكول المستمع.

  • "h1"⁩ — ⁦HTTP/1.1⁩ عبر ⁦TCP⁩ (متاح دائماً؛ أوسع دعم للعملاء)
  • "h2"⁩ — ⁦HTTP/2⁩ عبر ⁦TLS⁩ عبر تفاوض ⁦ALPN⁩ (تدفقات متعددة)
  • "h2c"⁩ — ⁦HTTP/2⁩ عبر ⁦TCP⁩ بنص واضح (وضع المعرفة المسبقة؛ استخدمه فقط على الشبكات الداخلية الموثوقة حيث ⁦TLS⁩ غير ضروري)
  • "h3"⁩ — ⁦HTTP/3⁩ عبر ⁦QUIC/UDP⁩ (يتطلب ⁦TLS⁩؛ يُفتح مستمع ⁦UDP⁩ مرافق تلقائياً على نفس المنفذ)
  • "webrtc"⁩ — قنوات بيانات ⁦WebRTC⁩ عبر ⁦UDP⁩ (⁦STUN/DTLS/SCTP⁩). راجع ⁦WebRtcListener⁩ لإعداد المعالج.
pkl
typealias Protocol = "h1" | "h2" | "h2c" | "h3" | "webrtc"

---

Listen

يصف مقبس مستمع واحد يربطه الخادم.

في معظم الإعدادات، الاختصار النصي في ⁦ServerBlock.listen⁩ كافٍ. استخدم هذا الصنف عندما تحتاج لتخصيص اختيار البروتوكول لكل مستمع.

أمثلة:

pkl
new { address = ":8080" }                  — جميع الواجهات، المنفذ 8080
new { address = "0.0.0.0:443" }            — بطاقة IPv4 صريحة
new { address = "[::]:443" }               — بطاقة IPv6 مزدوجة المكدس
new { address = "unix:///run/elide.sock" } — مقبس نطاق Unix
الحقلالنوعالافتراضيالوصف
addressString(!isEmpty)(مطلوب)عنوان المقبس للربط. يقبل عدة صيغ:
protocolsListingdefaultProtocolsإصدارات بروتوكول ⁦HTTP⁩ المُتفاوض عليها على هذا المستمع. العملاء الذين

address

عنوان المقبس للربط. يقبل عدة صيغ:

:PORT⁩ — جميع الواجهات على المنفذ المحدد ⁦HOST:PORT⁩ — الربط بواجهة ومنفذ محددين ⁦[IPv6]:PORT⁩ — عنوان ⁦IPv6⁩ ومنفذ ⁦unix:///path/to/sock⁩ — مقبس نطاق ⁦Unix⁩ (مسار مطلق) ⁦unix://./relative.sock⁩ — مقبس نطاق ⁦Unix⁩ (مسار نسبي)

لمستمعي ⁦TCP⁩، يجب ألا يتعارض المنفذ مع مستمعين آخرين في نفس كتلة الخادم ما لم يختلفوا بالبروتوكول (مثل ⁦TCP⁩ مقابل ⁦UDP⁩ لـ⁦h3⁩).

protocols

إصدارات بروتوكول ⁦HTTP⁩ المُتفاوض عليها على هذا المستمع. العملاء الذين لا يدعمون أي بروتوكول مُدرج يعودون إلى أعلى إصدار مدعوم مشترك.

الافتراضي هو ⁦["h1", "h2"]⁩. أضف ⁦"h3"⁩ لتفعيل ⁦QUIC⁩ — هذا يتطلب ⁦TLS⁩ ويفتح مستمع ⁦UDP⁩ مرافق على نفس المنفذ. استخدم ⁦allProtocols⁩ كاختصار لـ⁦{ "h1"; "h2"; "h3" }⁩.

---