คำอธิบาย
ใช้ chrome.sockets.udp API เพื่อส่งและรับข้อมูลผ่านเครือข่ายโดยใช้การเชื่อมต่อ UDP API นี้จะแทนที่ฟังก์ชันการทำงานของ UDP ที่พบก่อนหน้านี้ใน "socket" API
ไฟล์ Manifest
ประเภท
CreateInfo
พร็อพเพอร์ตี้
-
socketId
ตัวเลข
รหัสของซ็อกเก็ตที่สร้างใหม่ โปรดทราบว่ารหัสซ็อกเก็ตที่สร้างจาก API นี้ใช้ร่วมกับรหัสซ็อกเก็ตที่สร้างจาก API อื่นๆ ไม่ได้ เช่น API
[socket](../socket/)ที่เลิกใช้งานแล้ว
DnsQueryType
ค่ากำหนดการแปลง DNS ค่าเริ่มต้นคือ any และใช้การกำหนดค่าระบบปฏิบัติการปัจจุบันซึ่งอาจแสดงผลเป็น IPv4 หรือ IPv6 ipv4 บังคับใช้ IPv4 และ ipv6 บังคับใช้ IPv6
ค่าแจกแจง
"any"
"ipv4"
"ipv6"
ReceiveErrorInfo
พร็อพเพอร์ตี้
-
resultCode
ตัวเลข
รหัสผลลัพธ์ที่แสดงผลจากการเรียก recvfrom() ที่สำคัญ
-
socketId
ตัวเลข
รหัสซ็อกเก็ต
ReceiveInfo
พร็อพเพอร์ตี้
-
เพิ่มเติม
ArrayBuffer
เนื้อหาแพ็กเก็ต UDP (ตัดให้สั้นลงตามขนาดบัฟเฟอร์ปัจจุบัน)
-
remoteAddress
สตริง
ที่อยู่ของโฮสต์ที่แพ็กเก็ตส่งมา
-
remotePort
ตัวเลข
พอร์ตของโฮสต์ที่แพ็กเก็ตมาจาก
-
socketId
ตัวเลข
รหัสซ็อกเก็ต
SendInfo
พร็อพเพอร์ตี้
-
bytesSent
number ไม่บังคับ
จำนวนไบต์ที่ส่ง (หากผลลัพธ์ == 0)
-
resultCode
ตัวเลข
รหัสผลลัพธ์ที่แสดงผลจากการเรียกใช้เครือข่ายที่เกี่ยวข้อง ค่าลบแสดงถึงข้อผิดพลาด
SocketInfo
พร็อพเพอร์ตี้
-
bufferSize
number ไม่บังคับ
ขนาดของบัฟเฟอร์ที่ใช้รับข้อมูล หากไม่ได้ระบุขนาดบัฟเฟอร์ไว้อย่างชัดเจน ระบบจะไม่ระบุค่า
-
localAddress
สตริง ไม่บังคับ
หากซ็อกเก็ตที่เกี่ยวข้องเชื่อมโยงอยู่ จะมีที่อยู่ IPv4/6 ในเครื่อง
-
localPort
number ไม่บังคับ
หากซ็อกเก็ตที่เกี่ยวข้องเชื่อมโยงอยู่ จะมีพอร์ตในเครื่อง
-
name
สตริง ไม่บังคับ
สตริงที่แอปพลิเคชันกำหนดซึ่งเชื่อมโยงกับซ็อกเก็ต
-
หยุดชั่วคราว
บูลีน
การแจ้งที่ระบุว่าซ็อกเก็ตถูกบล็อกไม่ให้เริ่มทำงานเหตุการณ์ onReceive หรือไม่
-
ถาวร
บูลีน
แฟล็กที่ระบุว่าซ็อกเก็ตเปิดอยู่หรือไม่เมื่อแอปพลิเคชันถูกระงับ (ดู
SocketProperties.persistent) -
socketId
ตัวเลข
ตัวระบุซ็อกเก็ต
SocketProperties
พร็อพเพอร์ตี้
-
bufferSize
number ไม่บังคับ
ขนาดของบัฟเฟอร์ที่ใช้รับข้อมูล หากบัฟเฟอร์มีขนาดเล็กเกินกว่าที่จะรับแพ็กเก็ต UDP ข้อมูลจะสูญหาย ค่าเริ่มต้นคือ 4096
-
name
สตริง ไม่บังคับ
สตริงที่แอปพลิเคชันกำหนดซึ่งเชื่อมโยงกับซ็อกเก็ต
-
ถาวร
บูลีน ไม่บังคับ
แฟล็กที่ระบุว่าซ็อกเก็ตเปิดอยู่หรือไม่เมื่อหน้าเหตุการณ์ของแอปพลิเคชันถูกยกเลิกการโหลด (ดูจัดการวงจรของแอป) ค่าเริ่มต้นคือ "false" เมื่อโหลดแอปพลิเคชันแล้ว คุณจะดึงข้อมูลซ็อกเก็ตที่เปิดไว้ก่อนหน้านี้ด้วย persistent=true ได้โดยใช้
getSockets
เมธอด
bind()
chrome.sockets.udp.bind(
socketId: number,
address: string,
port: number,
callback: function,
): void
เชื่อมโยงที่อยู่และพอร์ตในเครื่องสำหรับซ็อกเก็ต สำหรับซ็อกเก็ตไคลเอ็นต์ เราขอแนะนำให้ใช้พอร์ต 0 เพื่อให้แพลตฟอร์มเลือกพอร์ตที่ว่างอยู่
เมื่อการดำเนินการ bind เสร็จสมบูรณ์ ระบบจะสร้างเหตุการณ์ onReceive เมื่อแพ็กเก็ต UDP มาถึงที่อยู่/พอร์ตที่ระบุ เว้นแต่ซ็อกเก็ตจะหยุดชั่วคราว
พารามิเตอร์
-
socketId
ตัวเลข
รหัสซ็อกเก็ต
-
ที่อยู่
สตริง
ที่อยู่ของเครื่องในพื้นที่ ระบบรองรับรูปแบบชื่อ DNS, IPv4 และ IPv6 ใช้ "0.0.0.0" เพื่อยอมรับแพ็กเก็ตจากอินเทอร์เฟซเครือข่ายภายในทั้งหมดที่มีอยู่
-
พอร์ต
ตัวเลข
พอร์ตของเครื่องในพื้นที่ ใช้ "0" เพื่อเชื่อมโยงกับพอร์ตที่ว่างอยู่
-
callback
ฟังก์ชัน
พารามิเตอร์
callbackจะมีลักษณะดังนี้(result: number) => void
-
ผลลัพธ์
ตัวเลข
รหัสผลลัพธ์ที่แสดงผลจากการเรียกใช้เครือข่ายที่เกี่ยวข้อง ค่าลบแสดงถึงข้อผิดพลาด
-
close()
chrome.sockets.udp.close(
socketId: number,
callback?: function,
): Promise<void>
ปิดซ็อกเก็ตและปล่อยที่อยู่/พอร์ตที่ซ็อกเก็ตเชื่อมโยงอยู่ ควรปิดซ็อกเก็ตแต่ละรายการที่สร้างขึ้นหลังการใช้งาน รหัสซ็อกเก็ตจะใช้ไม่ได้อีกต่อไปทันทีที่มีการเรียกใช้ฟังก์ชัน อย่างไรก็ตาม ระบบจะรับประกันว่าซ็อกเก็ตจะปิดก็ต่อเมื่อมีการเรียกใช้ Callback เท่านั้น
พารามิเตอร์
-
socketId
ตัวเลข
รหัสซ็อกเก็ต
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome 121 ขึ้นไประบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
create()
chrome.sockets.udp.create(
properties?: SocketProperties,
callback?: function,
): Promise<CreateInfo>
สร้างซ็อกเก็ต UDP ที่มีพร็อพเพอร์ตี้ที่ระบุ
พารามิเตอร์
-
พร็อพเพอร์ตี้
SocketProperties ไม่บังคับ
พร็อพเพอร์ตี้ซ็อกเก็ต (ไม่บังคับ)
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้(createInfo: CreateInfo) => void
-
createInfo
ผลลัพธ์ของการสร้างซ็อกเก็ต
-
การคืนสินค้า
-
Promise<CreateInfo>
Chrome 121 ขึ้นไประบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
getInfo()
chrome.sockets.udp.getInfo(
socketId: number,
callback?: function,
): Promise<SocketInfo>
ดึงข้อมูลสถานะของซ็อกเก็ตที่ระบุ
พารามิเตอร์
-
socketId
ตัวเลข
รหัสซ็อกเก็ต
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้(socketInfo: SocketInfo) => void
-
socketInfo
ออบเจ็กต์ที่มีข้อมูลซ็อกเก็ต
-
การคืนสินค้า
-
Promise<SocketInfo>
Chrome 121 ขึ้นไประบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
getJoinedGroups()
chrome.sockets.udp.getJoinedGroups(
socketId: number,
callback?: function,
): Promise<string[]>
รับที่อยู่กลุ่มมัลติแคสต์ที่ซ็อกเก็ตเข้าร่วมอยู่
พารามิเตอร์
-
socketId
ตัวเลข
รหัสซ็อกเก็ต
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้(groups: string[]) => void
-
กลุ่ม
string[]
อาร์เรย์ของกลุ่มที่ซ็อกเก็ตเข้าร่วม
-
การคืนสินค้า
-
Promise<string[]>
Chrome 121 ขึ้นไประบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
getSockets()
chrome.sockets.udp.getSockets(
callback?: function,
): Promise<SocketInfo[]>
ดึงข้อมูลรายการซ็อกเก็ตที่เปิดอยู่ซึ่งเป็นของแอปพลิเคชัน
พารามิเตอร์
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้(socketInfos: SocketInfo[]) => void
-
socketInfos
อาร์เรย์ของออบเจ็กต์ที่มีข้อมูลซ็อกเก็ต
-
การคืนสินค้า
-
Promise<SocketInfo[]>
Chrome 121 ขึ้นไประบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
joinGroup()
chrome.sockets.udp.joinGroup(
socketId: number,
address: string,
callback: function,
): void
เข้าร่วมกลุ่มมัลติแคสต์และเริ่มรับแพ็กเก็ตจากกลุ่มนั้น ซ็อกเก็ตต้องเชื่อมโยงกับพอร์ตภายในเครื่องก่อนที่จะเรียกใช้เมธอดนี้
พารามิเตอร์
-
socketId
ตัวเลข
รหัสซ็อกเก็ต
-
ที่อยู่
สตริง
อีเมลของกลุ่มที่ต้องการเข้าร่วม ระบบไม่รองรับชื่อโดเมน
-
callback
ฟังก์ชัน
พารามิเตอร์
callbackจะมีลักษณะดังนี้(result: number) => void
-
ผลลัพธ์
ตัวเลข
รหัสผลลัพธ์ที่แสดงผลจากการเรียกใช้เครือข่ายที่เกี่ยวข้อง ค่าลบแสดงถึงข้อผิดพลาด
-
leaveGroup()
chrome.sockets.udp.leaveGroup(
socketId: number,
address: string,
callback: function,
): void
ออกจากกลุ่มมัลติแคสต์ที่เข้าร่วมก่อนหน้านี้โดยใช้ joinGroup คุณจำเป็นต้องเรียกใช้ฟังก์ชันนี้ก็ต่อเมื่อวางแผนที่จะใช้ซ็อกเก็ตต่อไป เนื่องจากระบบปฏิบัติการจะดำเนินการโดยอัตโนมัติเมื่อปิดซ็อกเก็ต
การออกจากกลุ่มจะป้องกันไม่ให้เราเตอร์ส่งดาตาแกรมแบบมัลติแคสต์ไปยังโฮสต์ในเครื่อง โดยสมมติว่าไม่มีกระบวนการอื่นในโฮสต์ที่ยังคงเข้าร่วมกลุ่มอยู่
พารามิเตอร์
-
socketId
ตัวเลข
รหัสซ็อกเก็ต
-
ที่อยู่
สตริง
อีเมลของกลุ่มที่ต้องการออก ระบบไม่รองรับชื่อโดเมน
-
callback
ฟังก์ชัน
พารามิเตอร์
callbackจะมีลักษณะดังนี้(result: number) => void
-
ผลลัพธ์
ตัวเลข
รหัสผลลัพธ์ที่แสดงผลจากการเรียกใช้เครือข่ายที่เกี่ยวข้อง ค่าลบแสดงถึงข้อผิดพลาด
-
send()
chrome.sockets.udp.send(
socketId: number,
data: ArrayBuffer,
address: string,
port: number,
dnsQueryType?: DnsQueryType,
callback: function,
): void
ส่งข้อมูลในซ็อกเก็ตที่ระบุไปยังที่อยู่และพอร์ตที่ระบุ ซ็อกเก็ตต้องเชื่อมโยงกับพอร์ตภายในเครื่องก่อนที่จะเรียกใช้เมธอดนี้
พารามิเตอร์
-
socketId
ตัวเลข
รหัสซ็อกเก็ต
-
เพิ่มเติม
ArrayBuffer
ข้อมูลที่จะส่ง
-
ที่อยู่
สตริง
ที่อยู่ของเครื่องระยะไกล
-
พอร์ต
ตัวเลข
พอร์ตของเครื่องระยะไกล
-
dnsQueryType
DnsQueryType ไม่บังคับ
Chrome 103 ขึ้นไปค่ากำหนดการแปลงที่อยู่
-
callback
ฟังก์ชัน
พารามิเตอร์
callbackจะมีลักษณะดังนี้(sendInfo: SendInfo) => void
-
sendInfo
ผลลัพธ์ของเมธอด
send
-
setBroadcast()
chrome.sockets.udp.setBroadcast(
socketId: number,
enabled: boolean,
callback: function,
): void
เปิดหรือปิดใช้แพ็กเก็ตการออกอากาศในซ็อกเก็ตนี้
พารามิเตอร์
-
socketId
ตัวเลข
รหัสซ็อกเก็ต
-
เปิดอยู่
บูลีน
trueเพื่อเปิดใช้แพ็กเก็ตการออกอากาศfalseเพื่อปิดใช้ -
callback
ฟังก์ชัน
พารามิเตอร์
callbackจะมีลักษณะดังนี้(result: number) => void
-
ผลลัพธ์
ตัวเลข
รหัสผลลัพธ์ที่แสดงผลจากการเรียกใช้เครือข่ายที่เกี่ยวข้อง
-
setMulticastLoopbackMode()
chrome.sockets.udp.setMulticastLoopbackMode(
socketId: number,
enabled: boolean,
callback: function,
): void
กำหนดว่าจะให้แพ็กเก็ตแบบหลายผู้รับที่ส่งจากโฮสต์ไปยังกลุ่มแบบหลายผู้รับวนกลับไปยังโฮสต์หรือไม่
หมายเหตุ: ลักษณะการทำงานของ setMulticastLoopbackMode จะแตกต่างกันเล็กน้อยระหว่างระบบ Windows และระบบที่คล้าย Unix ความไม่สอดคล้องกันจะเกิดขึ้นก็ต่อเมื่อมีแอปพลิเคชันมากกว่า 1 รายการในโฮสต์เดียวกันที่เข้าร่วมกลุ่มมัลติแคสต์เดียวกัน แต่มีการตั้งค่าที่แตกต่างกันในโหมด Loopback ของมัลติแคสต์ ใน Windows แอปพลิเคชันที่ปิด Loopback จะไม่ได้รับแพ็กเก็ต Loopback ส่วนในระบบที่คล้าย Unix แอปพลิเคชันที่ปิด Loopback จะไม่ส่งแพ็กเก็ต Loopback ไปยังแอปพลิเคชันอื่นๆ ในโฮสต์เดียวกัน ดู MSDN: https://learn.microsoft.com/en-us/windows/win32/winsock/ip-multicast-2
การเรียกใช้เมธอดนี้ไม่จำเป็นต้องมีสิทธิ์มัลติแคสต์
พารามิเตอร์
-
socketId
ตัวเลข
รหัสซ็อกเก็ต
-
เปิดอยู่
บูลีน
ระบุว่าจะเปิดใช้โหมด Loopback หรือไม่
-
callback
ฟังก์ชัน
พารามิเตอร์
callbackจะมีลักษณะดังนี้(result: number) => void
-
ผลลัพธ์
ตัวเลข
รหัสผลลัพธ์ที่แสดงผลจากการเรียกใช้เครือข่ายที่เกี่ยวข้อง ค่าลบแสดงถึงข้อผิดพลาด
-
setMulticastTimeToLive()
chrome.sockets.udp.setMulticastTimeToLive(
socketId: number,
ttl: number,
callback: function,
): void
ตั้งค่าอายุการใช้งานของแพ็กเก็ตมัลติแคสต์ที่ส่งไปยังกลุ่มมัลติแคสต์
การเรียกใช้เมธอดนี้ไม่จำเป็นต้องมีสิทธิ์มัลติแคสต์
พารามิเตอร์
-
socketId
ตัวเลข
รหัสซ็อกเก็ต
-
ttl
ตัวเลข
ค่า Time-to-Live
-
callback
ฟังก์ชัน
พารามิเตอร์
callbackจะมีลักษณะดังนี้(result: number) => void
-
ผลลัพธ์
ตัวเลข
รหัสผลลัพธ์ที่แสดงผลจากการเรียกใช้เครือข่ายที่เกี่ยวข้อง ค่าลบแสดงถึงข้อผิดพลาด
-
setPaused()
chrome.sockets.udp.setPaused(
socketId: number,
paused: boolean,
callback?: function,
): Promise<void>
หยุดซ็อกเก็ตชั่วคราวหรือกลับมาทำงานอีกครั้ง ซ็อกเก็ตที่หยุดชั่วคราวจะถูกบล็อกไม่ให้เริ่มเหตุการณ์ onReceive
พารามิเตอร์
-
socketId
ตัวเลข
รหัสซ็อกเก็ต
-
หยุดชั่วคราว
บูลีน
แฟล็กเพื่อระบุว่าจะหยุดชั่วคราวหรือกลับมาทำงานอีกครั้ง
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome 121 ขึ้นไประบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
update()
chrome.sockets.udp.update(
socketId: number,
properties: SocketProperties,
callback?: function,
): Promise<void>
อัปเดตพร็อพเพอร์ตี้ของซ็อกเก็ต
พารามิเตอร์
-
socketId
ตัวเลข
รหัสซ็อกเก็ต
-
พร็อพเพอร์ตี้
พร็อพเพอร์ตี้ที่จะอัปเดต
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome 121 ขึ้นไประบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
กิจกรรม
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
-
ข้อมูล
-