chrome.sockets.udp

คำอธิบาย

ใช้ chrome.sockets.udp API เพื่อส่งและรับข้อมูลผ่านเครือข่ายโดยใช้การเชื่อมต่อ UDP API นี้มีผลแทนฟังก์ชัน UDP ที่พบใน API "socket" ก่อนหน้านี้

ไฟล์ Manifest

คุณต้องประกาศคีย์ต่อไปนี้ในไฟล์ Manifest เพื่อใช้ API นี้

"sockets"

ประเภท

CreateInfo

พร็อพเพอร์ตี้

  • socketId

    ตัวเลข

    รหัสของซ็อกเก็ตที่สร้างใหม่ โปรดทราบว่ารหัสซ็อกเก็ตที่สร้างจาก API นี้ใช้ไม่ได้กับรหัสซ็อกเก็ตที่สร้างจาก API อื่นๆ เช่น API ของ [socket](../socket/) ที่เลิกใช้งานแล้ว

DnsQueryType

Chrome 103 ขึ้นไป

ค่ากำหนดการแปลง DNS ค่าเริ่มต้นคือ any และใช้การกำหนดค่าระบบปฏิบัติการปัจจุบัน ซึ่งอาจแสดงผล IPv4 หรือ IPv6 ipv4 บังคับใช้ IPv4 และ ipv6 บังคับใช้ IPv6

ค่าแจกแจง

"IPV4"

"IPV6"

ReceiveErrorInfo

พร็อพเพอร์ตี้

  • resultCode

    ตัวเลข

    โค้ดผลลัพธ์ที่ได้จากการเรียก recvfrom() ที่สำคัญ

  • socketId

    ตัวเลข

    รหัสซ็อกเก็ต

ReceiveInfo

พร็อพเพอร์ตี้

  • ข้อมูล

    ArrayBuffer

    เนื้อหาของแพ็กเก็ต UDP (ตัดให้เท่ากับขนาดบัฟเฟอร์ปัจจุบัน)

  • remoteAddress

    string

    ที่อยู่ของโฮสต์ที่เป็นแหล่งที่มาของแพ็กเก็ต

  • remotePort

    ตัวเลข

    พอร์ตของโฮสต์ที่เป็นต้นทางแพ็กเก็ต

  • socketId

    ตัวเลข

    รหัสซ็อกเก็ต

SendInfo

พร็อพเพอร์ตี้

  • bytesSent

    ตัวเลข ไม่บังคับ

    จำนวนไบต์ที่ส่ง (หากผลลัพธ์ == 0)

  • resultCode

    ตัวเลข

    รหัสผลลัพธ์ที่ได้จากการเรียกเครือข่ายที่เกี่ยวข้อง ค่าลบหมายถึงข้อผิดพลาด

SocketInfo

พร็อพเพอร์ตี้

  • bufferSize

    ตัวเลข ไม่บังคับ

    ขนาดของบัฟเฟอร์ที่ใช้รับข้อมูล หากไม่ได้ระบุขนาดบัฟเฟอร์อย่างชัดแจ้ง จะไม่มีการระบุค่า

  • localAddress

    string ไม่บังคับ

    หากมีการเชื่อมโยงซ็อกเก็ตพื้นฐานแล้วจะมีที่อยู่ IPv4/6 ในเครื่อง

  • localPort

    ตัวเลข ไม่บังคับ

    หากซ็อกเก็ตเบื้องหลังถูกผูกไว้ จะมีพอร์ตในเครื่อง

  • ชื่อ

    string ไม่บังคับ

    สตริงที่กำหนดโดยแอปพลิเคชันที่เชื่อมโยงกับซ็อกเก็ต

  • หยุดชั่วคราว

    boolean

    การแจ้งที่ระบุว่าซ็อกเก็ตถูกบล็อกไม่ให้เริ่มทำงานเหตุการณ์ onReceive หรือไม่

  • ต่อเนื่อง

    boolean

    การแจ้งที่ระบุว่าซ็อกเก็ตถูกเปิดทิ้งไว้เมื่อแอปพลิเคชันถูกระงับหรือไม่ (ดู SocketProperties.persistent)

  • socketId

    ตัวเลข

    ตัวระบุซ็อกเก็ต

SocketProperties

พร็อพเพอร์ตี้

  • bufferSize

    ตัวเลข ไม่บังคับ

    ขนาดของบัฟเฟอร์ที่ใช้รับข้อมูล หากบัฟเฟอร์มีขนาดเล็กเกินกว่าที่จะรับแพ็กเก็ต UDP ข้อมูลจะสูญหาย ค่าเริ่มต้นคือ 4096

  • ชื่อ

    string ไม่บังคับ

    สตริงที่กำหนดโดยแอปพลิเคชันที่เชื่อมโยงกับซ็อกเก็ต

  • ต่อเนื่อง

    บูลีน ไม่บังคับ

    การแจ้งที่ระบุว่าซ็อกเก็ตเปิดอยู่หรือไม่เมื่อหน้ากิจกรรมของแอปพลิเคชันถูกยกเลิกการโหลด (ดูจัดการวงจรของแอป) ค่าเริ่มต้นคือ "false" เมื่อโหลดแอปพลิเคชันแล้ว ซ็อกเก็ตใดๆ ที่เปิดไว้ก่อนหน้านี้ด้วย valid=true จะดึงข้อมูลได้ด้วย getSockets

วิธีการ

bind()

chrome.sockets.udp.bind(
  socketId: number,
  address: string,
  port: number,
  callback: function,
)

เชื่อมโยงที่อยู่ในเครื่องและพอร์ตสำหรับซ็อกเก็ต สำหรับซ็อกเก็ตไคลเอ็นต์ ขอแนะนำให้ใช้พอร์ต 0 เพื่อให้แพลตฟอร์มเลือกพอร์ตว่างได้

เมื่อการดำเนินการ bind เสร็จสมบูรณ์ ระบบจะเพิ่มเหตุการณ์ onReceive เมื่อมีแพ็กเก็ต UDP มาถึงที่อยู่/พอร์ตที่ระบุ เว้นแต่ซ็อกเก็ตจะหยุดชั่วคราว

พารามิเตอร์

  • socketId

    ตัวเลข

    รหัสซ็อกเก็ต

  • จัดการ

    string

    ที่อยู่ของเครื่องภายใน รองรับชื่อ DNS, รูปแบบ IPv4 และ IPv6 ใช้ "0.0.0.0" เพื่อยอมรับแพ็กเก็ตจากอินเทอร์เฟซเครือข่ายที่ใช้ได้ทั้งหมดในเครื่อง

  • พอร์ต

    ตัวเลข

    พอร์ตของเครื่องภายใน ใช้ "0" เพื่อเชื่อมโยงกับพอร์ตอิสระ

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (result: number)=>void

    • ผลลัพธ์

      ตัวเลข

      รหัสผลลัพธ์ที่ได้จากการเรียกเครือข่ายที่เกี่ยวข้อง ค่าลบหมายถึงข้อผิดพลาด

close()

สัญญา
chrome.sockets.udp.close(
  socketId: number,
  callback?: function,
)

ปิดซ็อกเก็ตและปล่อยที่อยู่/พอร์ตที่ซ็อกเก็ตผูกไว้ ควรปิดซ็อกเก็ตแต่ละรายการที่สร้างขึ้นหลังการใช้งาน ระบบจะใช้รหัสซ็อกเก็ตทันทีที่เรียกใช้ฟังก์ชัน อย่างไรก็ตาม ระบบจะรับประกันว่าซ็อกเก็ตจะปิดก็ต่อเมื่อเรียกใช้โค้ดเรียกกลับเท่านั้น

พารามิเตอร์

  • socketId

    ตัวเลข

    รหัสซ็อกเก็ต

  • Callback

    ฟังก์ชัน ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    ()=>void

การคืนสินค้า

  • Promise<void>

    Chrome 121 ขึ้นไป

    Promiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ

create()

สัญญา
chrome.sockets.udp.create(
  properties?: SocketProperties,
  callback?: function,
)

สร้างซ็อกเก็ต UDP ด้วยพร็อพเพอร์ตี้ที่ระบุ

พารามิเตอร์

  • พร็อพเพอร์ตี้

    SocketProperties ไม่บังคับ

    คุณสมบัติของซ็อกเก็ต (ไม่บังคับ)

  • Callback

    ฟังก์ชัน ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    (createInfo: CreateInfo)=>void

    • createInfo

      ผลของการสร้างซ็อกเก็ต

การคืนสินค้า

  • Promise<CreateInfo>

    Chrome 121 ขึ้นไป

    Promiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ

getInfo()

สัญญา
chrome.sockets.udp.getInfo(
  socketId: number,
  callback?: function,
)

ดึงสถานะของซ็อกเก็ตที่ระบุ

พารามิเตอร์

  • socketId

    ตัวเลข

    รหัสซ็อกเก็ต

  • Callback

    ฟังก์ชัน ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    (socketInfo: SocketInfo)=>void

    • socketInfo

      ออบเจ็กต์ที่มีข้อมูลซ็อกเก็ต

การคืนสินค้า

  • Promise<SocketInfo>

    Chrome 121 ขึ้นไป

    Promiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ

getJoinedGroups()

สัญญา
chrome.sockets.udp.getJoinedGroups(
  socketId: number,
  callback?: function,
)

รับที่อยู่ของกลุ่มมัลติแคสต์ที่ซ็อกเก็ตเข้าร่วมอยู่ในปัจจุบัน

พารามิเตอร์

  • socketId

    ตัวเลข

    รหัสซ็อกเก็ต

  • Callback

    ฟังก์ชัน ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    (groups: string[])=>void

    • กลุ่ม

      สตริง[]

      อาร์เรย์ของกลุ่มที่ซ็อกเก็ตเข้าร่วม

การคืนสินค้า

  • คำสัญญา<string[]>

    Chrome 121 ขึ้นไป

    Promiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ

getSockets()

สัญญา
chrome.sockets.udp.getSockets(
  callback?: function,
)

เรียกรายการซ็อกเก็ตที่เปิดอยู่ในปัจจุบันที่แอปพลิเคชันเป็นเจ้าของ

พารามิเตอร์

  • Callback

    ฟังก์ชัน ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    (socketInfos: SocketInfo[])=>void

    • socketInfos

      อาร์เรย์ของออบเจ็กต์ที่มีข้อมูลซ็อกเก็ต

การคืนสินค้า

  • Promise<SocketInfo[]>

    Chrome 121 ขึ้นไป

    Promiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ

joinGroup()

chrome.sockets.udp.joinGroup(
  socketId: number,
  address: string,
  callback: function,
)

เข้าร่วมกลุ่มมัลติแคสต์และเริ่มรับแพ็กเก็ตจากกลุ่มนั้น ซ็อกเก็ตต้องเชื่อมโยงกับพอร์ตในเครื่องก่อนเรียกใช้เมธอดนี้

พารามิเตอร์

  • socketId

    ตัวเลข

    รหัสซ็อกเก็ต

  • จัดการ

    string

    ที่อยู่ของกลุ่มที่จะเข้าร่วม ระบบไม่รองรับชื่อโดเมน

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (result: number)=>void

    • ผลลัพธ์

      ตัวเลข

      รหัสผลลัพธ์ที่ได้จากการเรียกเครือข่ายที่เกี่ยวข้อง ค่าลบหมายถึงข้อผิดพลาด

leaveGroup()

chrome.sockets.udp.leaveGroup(
  socketId: number,
  address: string,
  callback: function,
)

ออกจากกลุ่มมัลติแคสต์ที่เข้าร่วมก่อนหน้านี้โดยใช้ joinGroup คุณต้องเรียกใช้บริการเมื่อคุณวางแผนจะใช้ซ็อกเก็ตต่อหลังจากนั้นเท่านั้น เนื่องจากระบบปฏิบัติการจะดําเนินการโดยอัตโนมัติเมื่อปิดซ็อกเก็ต

การออกจากกลุ่มจะป้องกันไม่ให้เราเตอร์ส่ง Multicast Datagram ไปยังโฮสต์ภายใน โดยสมมติว่าไม่มีกระบวนการอื่นในโฮสต์ยังคงเข้าร่วมกลุ่ม

พารามิเตอร์

  • socketId

    ตัวเลข

    รหัสซ็อกเก็ต

  • จัดการ

    string

    ที่อยู่กลุ่มที่จะออก ระบบไม่รองรับชื่อโดเมน

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (result: number)=>void

    • ผลลัพธ์

      ตัวเลข

      รหัสผลลัพธ์ที่ได้จากการเรียกเครือข่ายที่เกี่ยวข้อง ค่าลบหมายถึงข้อผิดพลาด

send()

chrome.sockets.udp.send(
  socketId: number,
  data: ArrayBuffer,
  address: string,
  port: number,
  dnsQueryType?: DnsQueryType,
  callback: function,
)

ส่งข้อมูลไปยังซ็อกเก็ตที่ระบุไปยังที่อยู่และพอร์ตที่ระบุ ซ็อกเก็ตต้องเชื่อมโยงกับพอร์ตในเครื่องก่อนเรียกใช้เมธอดนี้

พารามิเตอร์

  • socketId

    ตัวเลข

    รหัสซ็อกเก็ต

  • ข้อมูล

    ArrayBuffer

    ข้อมูลที่จะส่ง

  • จัดการ

    string

    ที่อยู่ของเครื่องระยะไกล

  • พอร์ต

    ตัวเลข

    พอร์ตของเครื่องระยะไกล

  • dnsQueryType

    DnsQueryType ไม่บังคับ

    Chrome 103 ขึ้นไป

    ค่ากำหนดการแก้ปัญหาของที่อยู่

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (sendInfo: SendInfo)=>void

    • sendInfo

      ผลลัพธ์ของเมธอด send

setBroadcast()

Chrome 44 ขึ้นไป
chrome.sockets.udp.setBroadcast(
  socketId: number,
  enabled: boolean,
  callback: function,
)

เปิดหรือปิดใช้งานแพ็กเก็ตการออกอากาศบนซ็อกเก็ตนี้

พารามิเตอร์

  • socketId

    ตัวเลข

    รหัสซ็อกเก็ต

  • เปิดใช้อยู่

    boolean

    true เพื่อเปิดใช้แพ็กเก็ตการออกอากาศ falseเพื่อปิดใช้

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (result: number)=>void

    • ผลลัพธ์

      ตัวเลข

      รหัสผลลัพธ์ที่ได้จากการเรียกเครือข่ายที่เกี่ยวข้อง

setMulticastLoopbackMode()

chrome.sockets.udp.setMulticastLoopbackMode(
  socketId: number,
  enabled: boolean,
  callback: function,
)

ตั้งค่าว่าแพ็กเก็ตมัลติแคสต์ที่ส่งจากโฮสต์ไปยังกลุ่มมัลติแคสต์จะวนซ้ำกลับไปยังโฮสต์หรือไม่

หมายเหตุ: ลักษณะการทำงานของ setMulticastLoopbackMode ในระบบ Windows กับ Unix นั้นมีความแตกต่างกันเล็กน้อย ความไม่สอดคล้องกันจะเกิดขึ้นเฉพาะในกรณีที่มีแอปพลิเคชันมากกว่า 1 รายการในโฮสต์เดียวกันเข้าร่วมกลุ่มมัลติแคสต์เดียวกันขณะมีการตั้งค่าที่แตกต่างกันในโหมดมัลติแคสต์ลูปแบ็ก ใน Windows แอปพลิเคชันที่มีการปิด Loopback อยู่จะไม่รับแพ็กเก็ต Loopback ขณะในระบบที่คล้ายกับ Unix แอปพลิเคชันที่มีการปิด Loopback จะไม่ส่งแพ็กเก็ตการวนกลับไปยังแอปพลิเคชันอื่นในโฮสต์เดียวกัน ดู MSDN ที่ http://goo.gl/6vqbj

การเรียกใช้เมธอดนี้ไม่จำเป็นต้องใช้สิทธิ์มัลติแคสต์

พารามิเตอร์

  • socketId

    ตัวเลข

    รหัสซ็อกเก็ต

  • เปิดใช้อยู่

    boolean

    ระบุว่าจะเปิดใช้โหมด Loopback หรือไม่

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (result: number)=>void

    • ผลลัพธ์

      ตัวเลข

      รหัสผลลัพธ์ที่ได้จากการเรียกเครือข่ายที่เกี่ยวข้อง ค่าลบหมายถึงข้อผิดพลาด

setMulticastTimeToLive()

chrome.sockets.udp.setMulticastTimeToLive(
  socketId: number,
  ttl: number,
  callback: function,
)

กำหนดเวลาเผยแพร่แพ็กเก็ตมัลติแคสต์ที่ส่งไปยังกลุ่มมัลติแคสต์

การเรียกใช้เมธอดนี้ไม่จำเป็นต้องใช้สิทธิ์มัลติแคสต์

พารามิเตอร์

  • socketId

    ตัวเลข

    รหัสซ็อกเก็ต

  • ttl

    ตัวเลข

    ค่าของ Time to Live

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (result: number)=>void

    • ผลลัพธ์

      ตัวเลข

      รหัสผลลัพธ์ที่ได้จากการเรียกเครือข่ายที่เกี่ยวข้อง ค่าลบหมายถึงข้อผิดพลาด

setPaused()

สัญญา
chrome.sockets.udp.setPaused(
  socketId: number,
  paused: boolean,
  callback?: function,
)

หยุดซ็อกเก็ตชั่วคราวหรือเลิกหยุดชั่วคราว ซ็อกเก็ตที่หยุดชั่วคราวถูกบล็อกไม่ให้เริ่มเหตุการณ์ onReceive ได้

พารามิเตอร์

  • socketId

    ตัวเลข

  • หยุดชั่วคราว

    boolean

    ตั้งค่าสถานะเพื่อระบุว่าจะหยุดชั่วคราวหรือยกเลิกการหยุดชั่วคราว

  • Callback

    ฟังก์ชัน ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    ()=>void

การคืนสินค้า

  • Promise<void>

    Chrome 121 ขึ้นไป

    Promiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ

update()

สัญญา
chrome.sockets.udp.update(
  socketId: number,
  properties: SocketProperties,
  callback?: function,
)

อัปเดตพร็อพเพอร์ตี้ซ็อกเก็ต

พารามิเตอร์

  • socketId

    ตัวเลข

    รหัสซ็อกเก็ต

  • พร็อพเพอร์ตี้

    พร็อพเพอร์ตี้ที่จะอัปเดต

  • Callback

    ฟังก์ชัน ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    ()=>void

การคืนสินค้า

  • Promise<void>

    Chrome 121 ขึ้นไป

    Promiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ

กิจกรรม

onReceive

chrome.sockets.udp.onReceive.addListener(
  callback: function,
)

เหตุการณ์เกิดขึ้นเมื่อได้รับแพ็กเก็ต UDP สำหรับซ็อกเก็ตที่ระบุ

พารามิเตอร์

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (info: ReceiveInfo)=>void

onReceiveError

chrome.sockets.udp.onReceiveError.addListener(
  callback: function,
)

เหตุการณ์เกิดขึ้นเมื่อเกิดข้อผิดพลาดของเครือข่ายขึ้นขณะที่รันไทม์กําลังรอข้อมูลเกี่ยวกับพอร์ตและที่อยู่ของซ็อกเก็ต เมื่อยกระดับเหตุการณ์นี้ ซ็อกเก็ตจะหยุดชั่วคราวและจะไม่เพิ่มเหตุการณ์ onReceive สำหรับซ็อกเก็ตนี้อีกจนกว่าซ็อกเก็ตจะกลับมาทำงานอีกครั้ง

พารามิเตอร์

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (info: ReceiveErrorInfo)=>void