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