chrome.socket

คำอธิบาย

ใช้ 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

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

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

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()

Promise
chrome.socket.create(
  type: SocketType,
  options?: CreateOptions,
  callback?: function,
)
: Promise<CreateInfo>

สร้างซ็อกเก็ตประเภทที่ระบุซึ่งจะเชื่อมต่อกับเครื่องระยะไกลที่ระบุ

พารามิเตอร์

  • ประเภท

    ประเภทซ็อกเก็ตที่จะสร้าง ต้องเป็น tcp หรือ udp

  • ตัวเลือก

    CreateOptions ไม่บังคับ

    ตัวเลือกซ็อกเก็ต

  • callback

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

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

    (createInfo: CreateInfo) => void

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

  • 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()

Promise
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()

Promise
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

recvFrom()

chrome.socket.recvFrom(
  socketId: number,
  bufferSize?: number,
  callback: function,
)
: void

รับข้อมูลจากซ็อกเก็ต UDP ที่ระบุ

พารามิเตอร์

  • socketId

    ตัวเลข

    socketId

  • bufferSize

    หมายเลข ไม่บังคับ

    ขนาดบัฟเฟอร์รับ

  • callback

    ฟังก์ชัน

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

    (recvFromInfo: RecvFromInfo) => void

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

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

เขียนข้อมูลในซ็อกเก็ตที่เชื่อมต่อที่ระบุ

พารามิเตอร์

  • socketId

    ตัวเลข

    socketId

  • เพิ่มเติม

    ArrayBuffer

    ข้อมูลที่จะเขียน

  • callback

    ฟังก์ชัน

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

    (writeInfo: WriteInfo) => void