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

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

  • จัดการ

    string

    ที่อยู่ IPv4/6 ที่ใช้ได้

  • ชื่อ

    string

    ชื่อที่สำคัญของอะแดปเตอร์ ใน *nix พารามิเตอร์นี้จะเป็น "eth0" "lo" ฯลฯ

  • prefixLength

    ตัวเลข

    ความยาวของคำนำหน้า

ReadInfo

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

  • ข้อมูล

    ArrayBuffer

  • resultCode

    ตัวเลข

    การแสดงผลรหัสจากการเรียกใช้ read() ที่สำคัญ

RecvFromInfo

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

  • จัดการ

    string

    ที่อยู่ของเครื่องระยะไกล

  • ข้อมูล

    ArrayBuffer

  • พอร์ต

    ตัวเลข

  • resultCode

    ตัวเลข

    การแสดงผลรหัสจากการเรียก recvfrom() ที่สำคัญ

SecureOptions

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

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

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

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

  • 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

recvFrom()

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

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

พารามิเตอร์

  • socketId

    ตัวเลข

    socketId

  • bufferSize

    ตัวเลข ไม่บังคับ

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

  • Callback

    ฟังก์ชัน

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

    (recvFromInfo: RecvFromInfo)=>void

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

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

เขียนข้อมูลในซ็อกเก็ตที่เชื่อมต่อที่ให้มา

พารามิเตอร์

  • socketId

    ตัวเลข

    socketId

  • ข้อมูล

    ArrayBuffer

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

  • Callback

    ฟังก์ชัน

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

    (writeInfo: WriteInfo)=>void