chrome.sockets.tcp

คำอธิบาย

ใช้ chrome.sockets.tcp API เพื่อส่งและรับข้อมูลผ่านเครือข่ายโดยใช้การเชื่อมต่อ TCP API นี้มีผลแทนฟังก์ชันการทำงานของ TCP ที่เคยอยู่ใน chrome.socket API

ไฟล์ Manifest

ต้องประกาศคีย์ต่อไปนี้ในไฟล์ Manifest เพื่อใช้ API นี้

"sockets"

ประเภท

CreateInfo

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

  • socketId

    ตัวเลข

    รหัสของซ็อกเก็ตที่สร้างใหม่ โปรดทราบว่ารหัสซ็อกเก็ตที่สร้างจาก API นี้ใช้ร่วมกับรหัสซ็อกเก็ตที่สร้างจาก API อื่นๆ ไม่ได้ เช่น API [socket](../socket/) ที่เลิกใช้งานแล้ว

DnsQueryType

Chrome 103 ขึ้นไป

ค่ากำหนดการแปลง DNS ค่าเริ่มต้นคือ any และใช้การกำหนดค่าระบบปฏิบัติการปัจจุบันซึ่งอาจแสดงผลเป็น IPv4 หรือ IPv6 ipv4 บังคับใช้ IPv4 และ ipv6 บังคับใช้ IPv6

ค่าแจกแจง

"any"

"ipv4"

"ipv6"

ReceiveErrorInfo

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

  • resultCode

    ตัวเลข

    รหัสผลลัพธ์ที่แสดงผลจากการเรียกใช้เครือข่ายที่เกี่ยวข้อง

  • socketId

    ตัวเลข

    ตัวระบุซ็อกเก็ต

ReceiveInfo

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

  • เพิ่มเติม

    ArrayBuffer

    ข้อมูลที่ได้รับ โดยมีขนาดสูงสุด bufferSize

  • socketId

    ตัวเลข

    ตัวระบุซ็อกเก็ต

SecureOptions

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

SendInfo

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

  • bytesSent

    number ไม่บังคับ

    จำนวนไบต์ที่ส่ง (หากผลลัพธ์ == 0)

  • resultCode

    ตัวเลข

    รหัสผลลัพธ์ที่แสดงผลจากการเรียกใช้เครือข่ายที่เกี่ยวข้อง ค่าลบแสดงถึงข้อผิดพลาด

SocketInfo

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

  • bufferSize

    number ไม่บังคับ

    ขนาดของบัฟเฟอร์ที่ใช้รับข้อมูล หากไม่ได้ระบุขนาดบัฟเฟอร์ไว้อย่างชัดเจน ระบบจะไม่ระบุค่า

  • เชื่อมต่อแล้ว

    บูลีน

    การแจ้งที่ระบุว่าซ็อกเก็ตเชื่อมต่อกับเพียร์ระยะไกลหรือไม่

  • localAddress

    สตริง ไม่บังคับ

    หากซ็อกเก็ตที่เกี่ยวข้องเชื่อมต่ออยู่ จะมีที่อยู่ IPv4/6 ในเครื่อง

  • localPort

    number ไม่บังคับ

    หากซ็อกเก็ตที่เกี่ยวข้องเชื่อมต่ออยู่ จะมีพอร์ตในเครื่อง

  • name

    สตริง ไม่บังคับ

    สตริงที่แอปพลิเคชันกำหนดซึ่งเชื่อมโยงกับซ็อกเก็ต

  • หยุดชั่วคราว

    บูลีน

    แฟล็กที่ระบุว่าซ็อกเก็ตที่เชื่อมต่อบล็อกเพียร์ไม่ให้ส่งข้อมูลเพิ่มเติมหรือไม่ (ดู setPaused)

  • peerAddress

    สตริง ไม่บังคับ

    หากซ็อกเก็ตที่สำคัญเชื่อมต่ออยู่ จะมีที่อยู่ IPv4/6 ของเพียร์

  • peerPort

    number ไม่บังคับ

    หากซ็อกเก็ตที่เกี่ยวข้องเชื่อมต่ออยู่ จะมีพอร์ตเพียร์

  • ถาวร

    บูลีน

    แฟล็กที่ระบุว่าซ็อกเก็ตเปิดอยู่หรือไม่เมื่อแอปพลิเคชันถูกระงับ (ดู SocketProperties.persistent)

  • socketId

    ตัวเลข

    ตัวระบุซ็อกเก็ต

SocketProperties

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

  • bufferSize

    number ไม่บังคับ

    ขนาดของบัฟเฟอร์ที่ใช้รับข้อมูล ค่าเริ่มต้นคือ 4096

  • name

    สตริง ไม่บังคับ

    สตริงที่แอปพลิเคชันกำหนดซึ่งเชื่อมโยงกับซ็อกเก็ต

  • ถาวร

    บูลีน ไม่บังคับ

    แฟล็กที่ระบุว่าซ็อกเก็ตเปิดอยู่หรือไม่เมื่อหน้าเหตุการณ์ของแอปพลิเคชันถูกยกเลิกการโหลด (ดูจัดการวงจรของแอป) ค่าเริ่มต้นคือ "false" เมื่อโหลดแอปพลิเคชันแล้ว คุณจะดึงข้อมูลซ็อกเก็ตที่เปิดไว้ก่อนหน้านี้ด้วย persistent=true ได้โดยใช้ getSockets

TLSVersionConstraints

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

  • สูงสุด

    สตริง ไม่บังคับ

  • นาที

    สตริง ไม่บังคับ

    เวอร์ชัน TLS ขั้นต่ำและสูงสุดที่ยอมรับได้ ค่าที่รองรับคือ tls1.2 หรือ tls1.3

    ระบบไม่รองรับค่า tls1 และ tls1.1 อีกต่อไป หากตั้งค่า min เป็นค่าใดค่าหนึ่งเหล่านี้ ระบบจะจำกัดค่าเป็น tls1.2 โดยไม่มีการแจ้งเตือน หากตั้งค่า max เป็นค่าใดค่าหนึ่งดังกล่าว หรือค่าอื่นๆ ที่ไม่รู้จัก ระบบจะไม่สนใจค่าดังกล่าวโดยไม่มีการแจ้งเตือน

เมธอด

close()

Promise
chrome.sockets.tcp.close(
  socketId: number,
  callback?: function,
)
: Promise<void>

ปิดซ็อกเก็ตและปล่อยที่อยู่/พอร์ตที่ซ็อกเก็ตเชื่อมโยงอยู่ ควรปิดซ็อกเก็ตแต่ละรายการที่สร้างขึ้นหลังการใช้งาน รหัสซ็อกเก็ตจะใช้ไม่ได้อีกต่อไปทันทีที่มีการเรียกใช้ฟังก์ชัน อย่างไรก็ตาม ระบบจะรับประกันว่าซ็อกเก็ตจะปิดก็ต่อเมื่อมีการเรียกใช้ Callback เท่านั้น

พารามิเตอร์

  • socketId

    ตัวเลข

    ตัวระบุซ็อกเก็ต

  • callback

    function ไม่บังคับ

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

    () => void

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

  • Promise<void>

    Chrome 121 ขึ้นไป

    ระบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback

connect()

chrome.sockets.tcp.connect(
  socketId: number,
  peerAddress: string,
  peerPort: number,
  dnsQueryType?: DnsQueryType,
  callback: function,
)
: void

เชื่อมต่อซ็อกเก็ตกับเครื่องระยะไกล เมื่อการดำเนินการ connect เสร็จสมบูรณ์ ระบบจะสร้างเหตุการณ์ onReceive เมื่อได้รับข้อมูลจากเพียร์ หากเกิดข้อผิดพลาดเกี่ยวกับเครือข่ายขณะที่รันไทม์กำลังรับแพ็กเก็ต ระบบจะสร้างเหตุการณ์ onReceiveError ขึ้น ซึ่งจะไม่มีการสร้างเหตุการณ์ onReceive สำหรับซ็อกเก็ตนี้อีกจนกว่าจะมีการเรียกใช้เมธอด resume

พารามิเตอร์

  • socketId

    ตัวเลข

    ตัวระบุซ็อกเก็ต

  • peerAddress

    สตริง

    ที่อยู่ของเครื่องระยะไกล ระบบรองรับรูปแบบชื่อ DNS, IPv4 และ IPv6

  • peerPort

    ตัวเลข

    พอร์ตของเครื่องระยะไกล

  • dnsQueryType

    DnsQueryType ไม่บังคับ

    Chrome 103 ขึ้นไป

    ค่ากำหนดการแปลงที่อยู่

  • callback

    ฟังก์ชัน

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

    (result: number) => void

    • ผลลัพธ์

      ตัวเลข

      รหัสผลลัพธ์ที่แสดงผลจากการเรียกใช้เครือข่ายที่เกี่ยวข้อง ค่าลบแสดงถึงข้อผิดพลาด

create()

Promise
chrome.sockets.tcp.create(
  properties?: SocketProperties,
  callback?: function,
)
: Promise<CreateInfo>

สร้างซ็อกเก็ต TCP

พารามิเตอร์

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

    SocketProperties ไม่บังคับ

    พร็อพเพอร์ตี้ซ็อกเก็ต (ไม่บังคับ)

  • callback

    function ไม่บังคับ

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

    (createInfo: CreateInfo) => void

    • createInfo

      ผลลัพธ์ของการสร้างซ็อกเก็ต

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

  • Promise<CreateInfo>

    Chrome 121 ขึ้นไป

    ระบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback

disconnect()

Promise
chrome.sockets.tcp.disconnect(
  socketId: number,
  callback?: function,
)
: Promise<void>

ยกเลิกการเชื่อมต่อซ็อกเก็ต

พารามิเตอร์

  • socketId

    ตัวเลข

    ตัวระบุซ็อกเก็ต

  • callback

    function ไม่บังคับ

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

    () => void

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

  • Promise<void>

    Chrome 121 ขึ้นไป

    ระบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback

getInfo()

Promise
chrome.sockets.tcp.getInfo(
  socketId: number,
  callback?: function,
)
: Promise<SocketInfo>

ดึงข้อมูลสถานะของซ็อกเก็ตที่ระบุ

พารามิเตอร์

  • socketId

    ตัวเลข

    ตัวระบุซ็อกเก็ต

  • callback

    function ไม่บังคับ

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

    (socketInfo: SocketInfo) => void

    • socketInfo

      ออบเจ็กต์ที่มีข้อมูลซ็อกเก็ต

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

  • Promise<SocketInfo>

    Chrome 121 ขึ้นไป

    ระบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback

getSockets()

Promise
chrome.sockets.tcp.getSockets(
  callback?: function,
)
: Promise<SocketInfo[]>

ดึงข้อมูลรายการซ็อกเก็ตที่เปิดอยู่ซึ่งเป็นของแอปพลิเคชัน

พารามิเตอร์

  • callback

    function ไม่บังคับ

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

    (socketInfos: SocketInfo[]) => void

    • socketInfos

      อาร์เรย์ของออบเจ็กต์ที่มีข้อมูลซ็อกเก็ต

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

  • Promise<SocketInfo[]>

    Chrome 121 ขึ้นไป

    ระบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback

secure()

chrome.sockets.tcp.secure(
  socketId: number,
  options?: SecureOptions,
  callback: function,
)
: void

เริ่มการเชื่อมต่อไคลเอ็นต์ TLS ผ่านซ็อกเก็ตไคลเอ็นต์ TCP ที่เชื่อมต่อ

พารามิเตอร์

  • socketId

    ตัวเลข

    ซ็อกเก็ตที่เชื่อมต่ออยู่ซึ่งมีอยู่แล้วที่จะใช้

  • ตัวเลือก

    SecureOptions ไม่บังคับ

    ข้อจำกัดและพารามิเตอร์สำหรับการเชื่อมต่อ TLS

  • callback

    ฟังก์ชัน

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

    (result: number) => void

    • ผลลัพธ์

      ตัวเลข

send()

chrome.sockets.tcp.send(
  socketId: number,
  data: ArrayBuffer,
  callback: function,
)
: void

ส่งข้อมูลบนซ็อกเก็ต TCP ที่ระบุ

พารามิเตอร์

  • socketId

    ตัวเลข

    ตัวระบุซ็อกเก็ต

  • เพิ่มเติม

    ArrayBuffer

    ข้อมูลที่จะส่ง

  • callback

    ฟังก์ชัน

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

    (sendInfo: SendInfo) => void

    • sendInfo

      ผลลัพธ์ของเมธอด send

setKeepAlive()

chrome.sockets.tcp.setKeepAlive(
  socketId: number,
  enable: boolean,
  delay?: number,
  callback: function,
)
: void

เปิดหรือปิดใช้ฟังก์ชัน Keep-Alive สำหรับการเชื่อมต่อ TCP

พารามิเตอร์

  • socketId

    ตัวเลข

    ตัวระบุซ็อกเก็ต

  • เปิดใช้

    บูลีน

    หากเป็นจริง ให้เปิดใช้ฟังก์ชันการทำงานของ Keep-Alive

  • ล่าช้า

    number ไม่บังคับ

    ตั้งค่าจำนวนวินาทีที่ล่าช้าระหว่างกลุ่มข้อมูลล่าสุดที่ได้รับกับการตรวจสอบ Keepalive ครั้งแรก ค่าเริ่มต้นคือ 0

  • callback

    ฟังก์ชัน

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

    (result: number) => void

    • ผลลัพธ์

      ตัวเลข

      รหัสผลลัพธ์ที่แสดงผลจากการเรียกใช้เครือข่ายที่เกี่ยวข้อง ค่าลบแสดงถึงข้อผิดพลาด

setNoDelay()

chrome.sockets.tcp.setNoDelay(
  socketId: number,
  noDelay: boolean,
  callback: function,
)
: void

ตั้งค่าหรือล้าง TCP_NODELAY สำหรับการเชื่อมต่อ TCP ระบบจะปิดใช้อัลกอริทึมของ Nagle เมื่อตั้งค่า TCP_NODELAY

พารามิเตอร์

  • socketId

    ตัวเลข

    ตัวระบุซ็อกเก็ต

  • noDelay

    บูลีน

    หากเป็นจริง ระบบจะปิดใช้อัลกอริทึมของ Nagle

  • callback

    ฟังก์ชัน

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

    (result: number) => void

    • ผลลัพธ์

      ตัวเลข

      รหัสผลลัพธ์ที่แสดงผลจากการเรียกใช้เครือข่ายที่เกี่ยวข้อง ค่าลบแสดงถึงข้อผิดพลาด

setPaused()

Promise
chrome.sockets.tcp.setPaused(
  socketId: number,
  paused: boolean,
  callback?: function,
)
: Promise<void>

เปิดหรือปิดใช้แอปพลิเคชันไม่ให้รับข้อความจากแอปพลิเคชันเทียบเท่า ค่าเริ่มต้นคือ "false" โดยปกติแล้ว แอปพลิเคชันจะใช้การหยุดซ็อกเก็ตชั่วคราวเพื่อจำกัดข้อมูลที่ส่งโดยแอปพลิเคชันเทียบเท่า เมื่อซ็อกเก็ตหยุดชั่วคราว ระบบจะไม่สร้างเหตุการณ์ onReceive เมื่อเชื่อมต่อซ็อกเก็ตและยกเลิกการหยุดชั่วคราว เหตุการณ์ onReceive จะเกิดขึ้นอีกครั้งเมื่อได้รับข้อความ

พารามิเตอร์

  • socketId

    ตัวเลข

  • หยุดชั่วคราว

    บูลีน

  • callback

    function ไม่บังคับ

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

    () => void

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

  • Promise<void>

    Chrome 121 ขึ้นไป

    ระบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback

update()

Promise
chrome.sockets.tcp.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.tcp.onReceive.addListener(
  callback: function,
)

เหตุการณ์ที่เกิดขึ้นเมื่อได้รับข้อมูลสำหรับซ็อกเก็ตที่ระบุ

พารามิเตอร์

  • callback

    ฟังก์ชัน

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

    (info: ReceiveInfo) => void

onReceiveError

chrome.sockets.tcp.onReceiveError.addListener(
  callback: function,
)

เหตุการณ์ที่เกิดขึ้นเมื่อเกิดข้อผิดพลาดเกี่ยวกับเครือข่ายขณะที่รันไทม์กำลังรอข้อมูลในที่อยู่ซ็อกเก็ตและพอร์ต เมื่อเหตุการณ์นี้เกิดขึ้น ระบบจะตั้งค่าซ็อกเก็ตเป็น paused และจะไม่มีเหตุการณ์ onReceive เกิดขึ้นอีกสำหรับซ็อกเก็ตนี้

พารามิเตอร์

  • callback

    ฟังก์ชัน

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

    (info: ReceiveErrorInfo) => void