คำอธิบาย
ใช้ chrome.socket API เพื่อส่งและรับข้อมูลผ่านเครือข่ายโดยใช้การเชื่อมต่อ TCP และ UDP หมายเหตุ: ตั้งแต่ Chrome 33 เป็นต้นไป เราได้เลิกใช้งาน API นี้เพื่อหันไปใช้ API sockets.udp, sockets.tcp และ sockets.tcpServer แทน
สิทธิ์
socketประเภท
AcceptInfo
พร็อพเพอร์ตี้
- 
    resultCode
ตัวเลข
 - 
    socketId
หมายเลข ไม่บังคับ
รหัสของซ็อกเก็ตที่ยอมรับ
 
CreateInfo
พร็อพเพอร์ตี้
- 
    socketId
ตัวเลข
รหัสของซ็อกเก็ตที่สร้างขึ้นใหม่
 
CreateOptions
NetworkInterface
พร็อพเพอร์ตี้
- 
    ที่อยู่
สตริง
ที่อยู่ IPv4/6 ที่ใช้ได้
 - 
    ชื่อ
สตริง
ชื่อพื้นฐานของอแดปเตอร์ ใน *nix โดยทั่วไปจะเป็น "eth0", "lo" ฯลฯ
 - 
    prefixLength
ตัวเลข
ความยาวของคำนำหน้า
 
ReadInfo
พร็อพเพอร์ตี้
- 
    เพิ่มเติม
ArrayBuffer
 - 
    resultCode
ตัวเลข
resultCode ที่ส่งคืนจากการเรียกใช้ read() ที่อยู่เบื้องหลัง
 
RecvFromInfo
พร็อพเพอร์ตี้
- 
    ที่อยู่
สตริง
ที่อยู่ของเครื่องระยะไกล
 - 
    เพิ่มเติม
ArrayBuffer
 - 
    พอร์ต
ตัวเลข
 - 
    resultCode
ตัวเลข
resultCode ที่แสดงจาก recvfrom() ที่สำคัญ
 
SecureOptions
พร็อพเพอร์ตี้
- 
    tlsVersion
TLSVersionConstraints ไม่บังคับ
 
SocketInfo
พร็อพเพอร์ตี้
- 
    เชื่อมต่อแล้ว
บูลีน
ซ็อกเก็ตพื้นฐานเชื่อมต่ออยู่หรือไม่
สำหรับซ็อกเก็ต
tcpค่านี้จะยังคงเป็นจริงแม้ว่าเพียร์ระยะไกลจะยกเลิกการเชื่อมต่อแล้วก็ตาม จากนั้นการอ่านหรือเขียนไปยังซ็อกเก็ตอาจทำให้เกิดข้อผิดพลาด ซึ่งเป็นสัญญาณว่าควรยกเลิกการเชื่อมต่อซ็อกเก็ตนี้ผ่านdisconnect()สำหรับ
udpซ็อกเก็ต การตั้งค่านี้จะระบุว่ามีการระบุที่อยู่ระยะไกลเริ่มต้นสำหรับการอ่านและเขียนแพ็กเก็ตหรือไม่ - 
    localAddress
สตริง ไม่บังคับ
หากซ็อกเก็ตพื้นฐานเชื่อมโยงหรือเชื่อมต่ออยู่ จะมีที่อยู่ IPv4/6 ของเครื่อง
 - 
    localPort
หมายเลข ไม่บังคับ
หากซ็อกเก็ตพื้นฐานเชื่อมโยงหรือเชื่อมต่ออยู่ จะมีพอร์ตภายใน
 - 
    peerAddress
สตริง ไม่บังคับ
หากซ็อกเก็ตพื้นฐานเชื่อมต่ออยู่ จะมีที่อยู่ IPv4/6 ของเพียร์
 - 
    peerPort
หมายเลข ไม่บังคับ
หากซ็อกเก็ตพื้นฐานเชื่อมต่ออยู่ จะมีพอร์ตของเพียร์ที่เชื่อมต่อ
 - 
    socketType
ประเภทของซ็อกเก็ตที่ส่งผ่าน ซึ่งจะเป็น
tcpหรือudp 
SocketType
ค่าแจกแจง
"tcp" 
 
"udp" 
 
TLSVersionConstraints
พร็อพเพอร์ตี้
- 
    สูงสุด
สตริง ไม่บังคับ
 - 
    นาที
สตริง ไม่บังคับ
เวอร์ชัน TLS ขั้นต่ำและสูงสุดที่ยอมรับได้ ค่าที่รองรับคือ
tls1.2หรือtls1.3ระบบไม่รองรับค่า
tls1และtls1.1อีกต่อไป หากตั้งค่าminเป็นค่าใดค่าหนึ่งเหล่านี้ ระบบจะบีบค่าเป็นtls1.2โดยไม่แจ้งให้ทราบ หากตั้งค่าmaxเป็นค่าใดค่าหนึ่งดังกล่าวหรือค่าอื่นๆ ที่ระบบไม่รู้จัก ระบบจะละเว้นค่าดังกล่าวโดยไม่มีการแจ้งเตือน 
WriteInfo
พร็อพเพอร์ตี้
- 
    bytesWritten
ตัวเลข
จำนวนไบต์ที่ส่งหรือรหัสข้อผิดพลาดที่เป็นค่าลบ
 
เมธอด
accept()
chrome.socket.accept(
socketId: number,
callback: function,
): void
วิธีนี้ใช้ได้กับซ็อกเก็ต TCP เท่านั้น ลงทะเบียนฟังก์ชัน Callback ที่จะเรียกใช้เมื่อยอมรับการเชื่อมต่อในซ็อกเก็ตเซิร์ฟเวอร์ที่กำลังฟังนี้ ต้องเรียกใช้ Listen ก่อน หากมี Callback การยอมรับที่ใช้งานอยู่แล้ว ระบบจะเรียกใช้ Callback นี้ทันทีโดยมีข้อผิดพลาดเป็น resultCode
พารามิเตอร์
- 
    socketId
ตัวเลข
socketId
 - 
    callback
ฟังก์ชัน
พารามิเตอร์
callbackมีลักษณะดังนี้(acceptInfo: AcceptInfo) => void
- 
    acceptInfo
 
 - 
    
 
bind()
chrome.socket.bind(
socketId: number,
address: string,
port: number,
callback: function,
): void
เชื่อมโยงที่อยู่ภายในสำหรับซ็อกเก็ต ปัจจุบันยังไม่รองรับซ็อกเก็ต TCP
พารามิเตอร์
- 
    socketId
ตัวเลข
socketId
 - 
    ที่อยู่
สตริง
ที่อยู่ของเครื่องในพื้นที่
 - 
    พอร์ต
ตัวเลข
พอร์ตของเครื่องภายใน
 - 
    callback
ฟังก์ชัน
พารามิเตอร์
callbackมีลักษณะดังนี้(result: number) => void
- 
    ผลลัพธ์
ตัวเลข
 
 - 
    
 
connect()
chrome.socket.connect(
socketId: number,
hostname: string,
port: number,
callback: function,
): void
เชื่อมต่อซ็อกเก็ตกับเครื่องระยะไกล (สำหรับซ็อกเก็ต tcp) สำหรับ udp ซ็อกเก็ต การตั้งค่านี้จะกำหนดที่อยู่เริ่มต้นที่ส่งและอ่านแพ็กเก็ตสำหรับ read() และ write() การเรียก
พารามิเตอร์
- 
    socketId
ตัวเลข
socketId
 - 
    hostname
สตริง
ชื่อโฮสต์หรือที่อยู่ IP ของเครื่องระยะไกล
 - 
    พอร์ต
ตัวเลข
พอร์ตของเครื่องระยะไกล
 - 
    callback
ฟังก์ชัน
พารามิเตอร์
callbackมีลักษณะดังนี้(result: number) => void
- 
    ผลลัพธ์
ตัวเลข
 
 - 
    
 
create()
chrome.socket.create(
type: SocketType,
options?: CreateOptions,
callback?: function,
): Promise<CreateInfo>
สร้างซ็อกเก็ตประเภทที่ระบุซึ่งจะเชื่อมต่อกับเครื่องระยะไกลที่ระบุ
พารามิเตอร์
- 
    ประเภท
ประเภทซ็อกเก็ตที่จะสร้าง ต้องเป็น
tcpหรือudp - 
    ตัวเลือก
CreateOptions ไม่บังคับ
ตัวเลือกซ็อกเก็ต
 - 
    callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callbackมีลักษณะดังนี้(createInfo: CreateInfo) => void
- 
    createInfo
 
 - 
    
 
การคืนสินค้า
- 
            
Promise<CreateInfo>
Chrome 121 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ
 
destroy()
chrome.socket.destroy(
socketId: number,
): void
ทำลายซ็อกเก็ต ควรทำลายซ็อกเก็ตแต่ละรายการที่สร้างขึ้นหลังการใช้งาน
พารามิเตอร์
- 
    socketId
ตัวเลข
socketId
 
disconnect()
chrome.socket.disconnect(
socketId: number,
): void
ยกเลิกการเชื่อมต่อซ็อกเก็ต สำหรับซ็อกเก็ต UDP disconnect จะไม่มีการดำเนินการใดๆ แต่เรียกใช้ได้อย่างปลอดภัย
พารามิเตอร์
- 
    socketId
ตัวเลข
socketId
 
getInfo()
chrome.socket.getInfo(
socketId: number,
callback?: function,
): Promise<SocketInfo>
ดึงข้อมูลสถานะของซ็อกเก็ตที่ระบุ
พารามิเตอร์
- 
    socketId
ตัวเลข
socketId
 - 
    callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callbackมีลักษณะดังนี้(result: SocketInfo) => void
- 
    ผลลัพธ์
 
 - 
    
 
การคืนสินค้า
- 
            
Promise<SocketInfo>
Chrome 121 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ
 
getJoinedGroups()
chrome.socket.getJoinedGroups(
socketId: number,
callback: function,
): void
รับที่อยู่กลุ่มมัลติคาสต์ที่ซ็อกเก็ตเข้าร่วมอยู่
พารามิเตอร์
- 
    socketId
ตัวเลข
socketId
 - 
    callback
ฟังก์ชัน
พารามิเตอร์
callbackมีลักษณะดังนี้(groups: string[]) => void
- 
    กลุ่ม
string[]
 
 - 
    
 
getNetworkList()
chrome.socket.getNetworkList(
callback?: function,
): Promise<NetworkInterface[]>
ดึงข้อมูลเกี่ยวกับอแดปเตอร์ในเครื่องในระบบนี้
พารามิเตอร์
- 
    callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callbackมีลักษณะดังนี้(result: NetworkInterface[]) => void
- 
    ผลลัพธ์
 
 - 
    
 
การคืนสินค้า
- 
            
Promise<NetworkInterface[]>
Chrome 121 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ
 
joinGroup()
chrome.socket.joinGroup(
socketId: number,
address: string,
callback: function,
): void
เข้าร่วมกลุ่มมัลติแคสต์และเริ่มรับแพ็กเกตจากกลุ่มนั้น ซ็อกเก็ตต้องเป็นประเภท UDP และต้องเชื่อมโยงกับพอร์ตในเครื่องก่อนเรียกใช้เมธอดนี้
พารามิเตอร์
- 
    socketId
ตัวเลข
socketId
 - 
    ที่อยู่
สตริง
อีเมลของกลุ่มที่จะเข้าร่วม ไม่รองรับชื่อโดเมน
 - 
    callback
ฟังก์ชัน
พารามิเตอร์
callbackมีลักษณะดังนี้(result: number) => void
- 
    ผลลัพธ์
ตัวเลข
 
 - 
    
 
leaveGroup()
chrome.socket.leaveGroup(
socketId: number,
address: string,
callback: function,
): void
ออกจากกลุ่มมัลติแคสต์ที่เข้าร่วมก่อนหน้านี้โดยใช้ joinGroup คุณไม่จำเป็นต้องออกจากกลุ่มมัลติแคสต์ก่อนที่จะทำลายซ็อกเก็ตหรือออก ระบบปฏิบัติการจะเรียกใช้ฟังก์ชันนี้โดยอัตโนมัติ
การออกจากกลุ่มจะทำให้เราเตอร์ไม่ส่ง Datagram แบบหลายผู้รับไปยังโฮสต์ในเครื่อง โดยสมมติว่าไม่มีกระบวนการอื่นในโฮสต์ที่ยังเข้าร่วมกลุ่มอยู่
พารามิเตอร์
- 
    socketId
ตัวเลข
socketId
 - 
    ที่อยู่
สตริง
อีเมลของกลุ่มที่ต้องการออก ไม่รองรับชื่อโดเมน
 - 
    callback
ฟังก์ชัน
พารามิเตอร์
callbackมีลักษณะดังนี้(result: number) => void
- 
    ผลลัพธ์
ตัวเลข
 
 - 
    
 
listen()
chrome.socket.listen(
socketId: number,
address: string,
port: number,
backlog?: number,
callback: function,
): void
วิธีนี้ใช้ได้กับซ็อกเก็ต TCP เท่านั้น รอการเชื่อมต่อในพอร์ตและที่อยู่ที่ระบุ ซึ่งจะทำให้ซ็อกเก็ตนี้เป็นซ็อกเก็ตเซิร์ฟเวอร์ และฟังก์ชันซ็อกเก็ตไคลเอ็นต์ (เชื่อมต่อ อ่าน เขียน) จะใช้กับซ็อกเก็ตนี้ไม่ได้อีกต่อไป
พารามิเตอร์
- 
    socketId
ตัวเลข
socketId
 - 
    ที่อยู่
สตริง
ที่อยู่ของเครื่องในพื้นที่
 - 
    พอร์ต
ตัวเลข
พอร์ตของเครื่องภายใน
 - 
    backlog
หมายเลข ไม่บังคับ
ความยาวของคิวการฟังของซ็อกเก็ต
 - 
    callback
ฟังก์ชัน
พารามิเตอร์
callbackมีลักษณะดังนี้(result: number) => void
- 
    ผลลัพธ์
ตัวเลข
 
 - 
    
 
read()
chrome.socket.read(
socketId: number,
bufferSize?: number,
callback: function,
): void
อ่านข้อมูลจากซ็อกเก็ตที่เชื่อมต่อที่ระบุ
พารามิเตอร์
- 
    socketId
ตัวเลข
socketId
 - 
    bufferSize
หมายเลข ไม่บังคับ
ขนาดบัฟเฟอร์การอ่าน
 - 
    callback
ฟังก์ชัน
พารามิเตอร์
callbackมีลักษณะดังนี้(readInfo: ReadInfo) => void
- 
    readInfo
 
 - 
    
 
recvFrom()
chrome.socket.recvFrom(
socketId: number,
bufferSize?: number,
callback: function,
): void
รับข้อมูลจากซ็อกเก็ต UDP ที่ระบุ
พารามิเตอร์
- 
    socketId
ตัวเลข
socketId
 - 
    bufferSize
หมายเลข ไม่บังคับ
ขนาดบัฟเฟอร์รับ
 - 
    callback
ฟังก์ชัน
พารามิเตอร์
callbackมีลักษณะดังนี้(recvFromInfo: RecvFromInfo) => void
- 
    recvFromInfo
 
 - 
    
 
secure()
chrome.socket.secure(
socketId: number,
options?: SecureOptions,
callback: function,
): void
เริ่มการเชื่อมต่อไคลเอ็นต์ TLS ผ่านซ็อกเก็ตไคลเอ็นต์ TCP ที่เชื่อมต่อ
พารามิเตอร์
- 
    socketId
ตัวเลข
เต้ารับที่เชื่อมต่อที่จะใช้
 - 
    ตัวเลือก
SecureOptions ไม่บังคับ
ข้อจำกัดและพารามิเตอร์สำหรับการเชื่อมต่อ TLS
 - 
    callback
ฟังก์ชัน
พารามิเตอร์
callbackมีลักษณะดังนี้(result: number) => void
- 
    ผลลัพธ์
ตัวเลข
 
 - 
    
 
sendTo()
chrome.socket.sendTo(
socketId: number,
data: ArrayBuffer,
address: string,
port: number,
callback: function,
): void
ส่งข้อมูลในซ็อกเก็ต UDP ที่ระบุไปยังที่อยู่และพอร์ตที่ระบุ
พารามิเตอร์
- 
    socketId
ตัวเลข
socketId
 - 
    เพิ่มเติม
ArrayBuffer
ข้อมูลที่จะเขียน
 - 
    ที่อยู่
สตริง
ที่อยู่ของเครื่องระยะไกล
 - 
    พอร์ต
ตัวเลข
พอร์ตของเครื่องระยะไกล
 - 
    callback
ฟังก์ชัน
พารามิเตอร์
callbackมีลักษณะดังนี้(writeInfo: WriteInfo) => void
- 
    writeInfo
 
 - 
    
 
setKeepAlive()
chrome.socket.setKeepAlive(
socketId: number,
enable: boolean,
delay?: number,
callback: function,
): void
เปิดหรือปิดใช้ฟังก์ชัน Keep-Alive สำหรับการเชื่อมต่อ TCP
พารามิเตอร์
- 
    socketId
ตัวเลข
socketId
 - 
    เปิดใช้
บูลีน
หากเป็นจริง ให้เปิดใช้ฟังก์ชันการทำงาน Keep-Alive
 - 
    ล่าช้า
หมายเลข ไม่บังคับ
ตั้งค่าเวลาหน่วงเป็นวินาทีระหว่างแพ็กเก็ตข้อมูลสุดท้ายที่ได้รับกับโพรบ Keepalive แรก ค่าเริ่มต้นคือ 0
 - 
    callback
ฟังก์ชัน
พารามิเตอร์
callbackมีลักษณะดังนี้(result: boolean) => void
- 
    ผลลัพธ์
บูลีน
 
 - 
    
 
setMulticastLoopbackMode()
chrome.socket.setMulticastLoopbackMode(
socketId: number,
enabled: boolean,
callback: function,
): void
กำหนดว่าจะวนซ้ำแพ็กเก็ตมัลติแคสต์ที่ส่งจากโฮสต์ไปยังกลุ่มมัลติแคสต์กลับไปยังโฮสต์หรือไม่
หมายเหตุ: ลักษณะการทำงานของ setMulticastLoopbackMode จะแตกต่างกันเล็กน้อยระหว่างระบบ Windows กับระบบที่คล้าย Unix ความไม่สอดคล้องกันจะเกิดขึ้นก็ต่อเมื่อมีแอปพลิเคชันมากกว่า 1 รายการในโฮสต์เดียวกันที่เข้าร่วมกลุ่มมัลติแคสต์เดียวกันในขณะที่มีการตั้งค่าโหมดลูปแบ็กมัลติแคสต์ที่แตกต่างกัน ใน Windows แอปพลิเคชันที่ปิดลูปแบ็กจะไม่ได้รับแพ็กเก็ตลูปแบ็ก ส่วนในระบบที่คล้าย Unix แอปพลิเคชันที่ปิดลูปแบ็กจะไม่ส่งแพ็กเก็ตลูปแบ็กไปยังแอปพลิเคชันอื่นๆ ในโฮสต์เดียวกัน ดู MSDN ได้ที่ https://learn.microsoft.com/en-us/windows/win32/winsock/ip-multicast-2
การเรียกใช้เมธอดนี้ไม่จำเป็นต้องมีสิทธิ์แบบมัลติแคสต์
พารามิเตอร์
- 
    socketId
ตัวเลข
socketId
 - 
    เปิดใช้อยู่
บูลีน
ระบุว่าจะเปิดใช้โหมดลูปแบ็กหรือไม่
 - 
    callback
ฟังก์ชัน
พารามิเตอร์
callbackมีลักษณะดังนี้(result: number) => void
- 
    ผลลัพธ์
ตัวเลข
 
 - 
    
 
setMulticastTimeToLive()
chrome.socket.setMulticastTimeToLive(
socketId: number,
ttl: number,
callback: function,
): void
ตั้งค่า Time-To-Live ของแพ็กเก็ตมัลติแคสต์ที่ส่งไปยังกลุ่มมัลติแคสต์
การเรียกใช้เมธอดนี้ไม่จำเป็นต้องมีสิทธิ์แบบมัลติแคสต์
พารามิเตอร์
- 
    socketId
ตัวเลข
socketId
 - 
    ttl
ตัวเลข
ค่า Time to Live
 - 
    callback
ฟังก์ชัน
พารามิเตอร์
callbackมีลักษณะดังนี้(result: number) => void
- 
    ผลลัพธ์
ตัวเลข
 
 - 
    
 
setNoDelay()
chrome.socket.setNoDelay(
socketId: number,
noDelay: boolean,
callback: function,
): void
ตั้งค่าหรือล้าง TCP_NODELAY สำหรับการเชื่อมต่อ TCP ระบบจะปิดใช้อัลกอริทึมของ Nagle เมื่อตั้งค่า TCP_NODELAY
พารามิเตอร์
- 
    socketId
ตัวเลข
socketId
 - 
    noDelay
บูลีน
หากเป็นจริง จะปิดใช้อัลกอริทึมของ Nagle
 - 
    callback
ฟังก์ชัน
พารามิเตอร์
callbackมีลักษณะดังนี้(result: boolean) => void
- 
    ผลลัพธ์
บูลีน
 
 - 
    
 
write()
chrome.socket.write(
socketId: number,
data: ArrayBuffer,
callback: function,
): void
เขียนข้อมูลในซ็อกเก็ตที่เชื่อมต่อที่ระบุ