DnsOptions

public final class DnsOptions


คลาสที่กำหนดค่าฟังก์ชันการทำงานของการแปลงโฮสต์ของ Cronet โปรดทราบว่าแม้ว่าเราจะอ้างอิงถึง DNS ว่าเป็นกลไกที่ใช้กันมากที่สุดเพื่อความกระชับ แต่การตั้งค่าจะใช้กับวิธีการอื่นๆ ในการแปลงชื่อโฮสต์ เช่น การแปลงไฟล์โฮสต์

Cronet แปลงชื่อโฮสต์ได้ 2 วิธี ได้แก่ การใช้ตัวแปลงของระบบ (ใช้ getaddrinfo ที่ไลบรารีของระบบมีให้) หรือการใช้ตัวแปลงที่กำหนดเองซึ่งสร้างขึ้นในสแต็กเครือข่ายที่ Cronet ใช้

สแต็กในตัวมีข้อดีหลายประการเมื่อเทียบกับการใช้ตัวแปลงของระบบ ดังนี้

  • ได้รับการปรับแต่งให้เหมาะกับความต้องการของสแต็กเครือข่าย โดยเฉพาะอย่างยิ่งความเร็วและความเสถียร
  • getaddrinfo เป็นการเรียกที่บล็อกซึ่งต้องใช้เธรดงานเฉพาะและทำให้ยกเลิกไม่ได้ (เราต้องละทิ้งเธรดจนกว่าการเรียกจะเสร็จสมบูรณ์)
  • อินเทอร์เฟซ getaddrinfo ไม่ให้ข้อมูลเชิงลึกเกี่ยวกับสาเหตุแท้จริงของความล้มเหลว
  • struct addrinfo ไม่มี TTL (Time To Live) ของที่อยู่ที่แสดงผล ซึ่งจำกัดความยืดหยุ่นในการจัดการการแคช (เช่น การอนุญาตให้ใช้ระเบียน DNS ที่ล้าสมัย) และกำหนดให้เราต้องอาศัยแคช DNS ของระบบปฏิบัติการหรือใช้ TTL อย่างระมัดระวัง
  • getaddrinfo เป็นส่วนหนึ่งของระบบปฏิบัติการจึงมีการพัฒนาอย่างช้าๆ การใช้สแต็กที่กำหนดเองช่วยให้ Cronet สามารถเปิดตัวฟีเจอร์ต่างๆ เช่น DNS ที่เข้ารหัสได้เร็วขึ้น

การกำหนดค่าส่วนใหญ่ในคลาสนี้จะมีผลก็ต่อเมื่อมีการใช้รีโซลเวอร์ DNS ในตัวเท่านั้น

สรุป

ประเภทที่ซ้อนกัน

public final class DnsOptions.Builder

เครื่องมือสร้างสำหรับ DnsOptions

คำอธิบายประกอบสำหรับ API ที่ยังไม่ถือว่าเสถียร

คลาสที่กำหนดค่าฟังก์ชันการทำงานของ DNS ที่ล้าสมัยของ Cronet

เครื่องมือสร้างสำหรับ StaleDnsOptions

เมธอดสาธารณะ

เครื่องมือสร้าง

public static DnsOptions.Builder builder()

getEnableStaleDns

public @Nullable Boolean getEnableStaleDns()

getPersistHostCache

public @Nullable Boolean getPersistHostCache()

getPersistHostCachePeriodMillis

public @Nullable Long getPersistHostCachePeriodMillis()

getPreestablishConnectionsToStaleDnsResults

public @Nullable Boolean getPreestablishConnectionsToStaleDnsResults()

getStaleDnsOptions

public @Nullable DnsOptions.StaleDnsOptions getStaleDnsOptions()

getUseBuiltInDnsResolver

public @Nullable Boolean getUseBuiltInDnsResolver()