คำอธิบาย
ใช้ chrome.sockets.udp
API เพื่อส่งและรับข้อมูลผ่านเครือข่ายโดยใช้การเชื่อมต่อ UDP API นี้มีผลแทนฟังก์ชัน UDP ที่พบใน API "socket" ก่อนหน้านี้
ไฟล์ Manifest
ประเภท
CreateInfo
พร็อพเพอร์ตี้
-
socketId
ตัวเลข
รหัสของซ็อกเก็ตที่สร้างใหม่ โปรดทราบว่ารหัสซ็อกเก็ตที่สร้างจาก API นี้ใช้ไม่ได้กับรหัสซ็อกเก็ตที่สร้างจาก API อื่นๆ เช่น API ของ
[
socket](../socket/)
ที่เลิกใช้งานแล้ว
DnsQueryType
ค่ากำหนดการแปลง 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.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
-
ข้อมูล
-