chrome.socket

Mô tả

Sử dụng API chrome.socket để gửi và nhận dữ liệu qua mạng bằng cách sử dụng các kết nối TCP và UDP. Lưu ý: Kể từ Chrome 33, API này không được dùng nữa mà thay vào đó là các API sockets.udp, sockets.tcpsockets.tcpServer.

Quyền

socket

Loại

AcceptInfo

Thuộc tính

  • resultCode

    số

  • socketId

    number không bắt buộc

    Mã nhận dạng của ổ cắm được chấp nhận.

CreateInfo

Thuộc tính

  • socketId

    số

    Mã nhận dạng của ổ cắm mới tạo.

CreateOptions

NetworkInterface

Thuộc tính

  • xử lý

    chuỗi

    Địa chỉ IPv4/6 có sẵn.

  • tên

    chuỗi

    Tên cơ bản của bộ chuyển đổi. Trên *nix, tên này thường là "eth0", "lo", v.v.

  • prefixLength

    số

    Độ dài tiền tố

ReadInfo

Thuộc tính

  • khác

    ArrayBuffer

  • resultCode

    số

    ResultCode được trả về từ lệnh gọi read() cơ bản.

RecvFromInfo

Thuộc tính

  • xử lý

    chuỗi

    Địa chỉ của máy từ xa.

  • khác

    ArrayBuffer

  • cổng

    số

  • resultCode

    số

    ResultCode được trả về từ lệnh gọi recvfrom() cơ bản.

SecureOptions

Thuộc tính

SocketInfo

Thuộc tính

  • đã kết nối

    boolean

    Liệu ổ cắm cơ bản có được kết nối hay không.

    Đối với các ổ cắm tcp, điều này vẫn đúng ngay cả khi thiết bị ngang hàng từ xa đã ngắt kết nối. Sau đó, việc đọc hoặc ghi vào ổ cắm có thể dẫn đến lỗi, cho thấy rằng ổ cắm này phải được ngắt kết nối thông qua disconnect().

    Đối với các ổ cắm udp, điều này chỉ thể hiện việc địa chỉ từ xa mặc định đã được chỉ định để đọc và ghi các gói hay chưa.

  • localAddress

    chuỗi không bắt buộc

    Nếu ổ cắm cơ bản được liên kết hoặc kết nối, thì sẽ chứa địa chỉ IPv4/6 cục bộ.

  • localPort

    number không bắt buộc

    Nếu ổ cắm cơ bản được liên kết hoặc kết nối, thì sẽ chứa cổng cục bộ của ổ cắm đó.

  • peerAddress

    chuỗi không bắt buộc

    Nếu ổ cắm cơ bản được kết nối, hãy chứa địa chỉ IPv4/6 của thiết bị ngang hàng.

  • peerPort

    number không bắt buộc

    Nếu ổ cắm cơ bản được kết nối, hãy chứa cổng của thiết bị ngang hàng được kết nối.

  • socketType

    Loại ổ cắm đã truyền. Đây sẽ là tcp hoặc udp.

SocketType

Enum

"tcp"

"udp"

TLSVersionConstraints

Thuộc tính

  • tối đa

    chuỗi không bắt buộc

  • phút

    chuỗi không bắt buộc

    Phiên bản TLS tối thiểu và tối đa được chấp nhận. Giá trị được hỗ trợ là tls1.2 hoặc tls1.3.

    Giá trị tls1tls1.1 không còn được hỗ trợ nữa. Nếu min được đặt thành một trong các giá trị này, thì giá trị đó sẽ được tự động giới hạn ở tls1.2. Nếu bạn đặt max thành một trong các giá trị đó hoặc bất kỳ giá trị không nhận dạng được nào khác, thì giá trị đó sẽ bị bỏ qua một cách âm thầm.

WriteInfo

Thuộc tính

  • bytesWritten

    số

    Số lượng byte đã gửi hoặc mã lỗi âm.

Phương thức

accept()

chrome.socket.accept(
  socketId: number,
  callback: function,
)
: void

Phương thức này chỉ áp dụng cho các socket TCP. Đăng ký một hàm gọi lại sẽ được gọi khi một kết nối được chấp nhận trên ổ cắm máy chủ đang nghe này. Trước tiên, bạn phải gọi Listen. Nếu đã có một lệnh gọi lại chấp nhận đang hoạt động, lệnh gọi lại này sẽ được gọi ngay lập tức với một lỗi làm resultCode.

Thông số

  • socketId

    số

    socketId.

  • callback

    hàm

    Tham số callback có dạng như sau:

    (acceptInfo: AcceptInfo) => void

bind()

chrome.socket.bind(
  socketId: number,
  address: string,
  port: number,
  callback: function,
)
: void

Liên kết địa chỉ cục bộ cho ổ cắm. Hiện tại, tính năng này không hỗ trợ socket TCP.

Thông số

  • socketId

    số

    socketId.

  • xử lý

    chuỗi

    Địa chỉ của máy cục bộ.

  • cổng

    số

    Cổng của máy cục bộ.

  • callback

    hàm

    Tham số callback có dạng như sau:

    (result: number) => void

    • kết quả

      số

connect()

chrome.socket.connect(
  socketId: number,
  hostname: string,
  port: number,
  callback: function,
)
: void

Kết nối ổ cắm với máy từ xa (đối với ổ cắm tcp). Đối với một socket udp, lệnh này sẽ đặt địa chỉ mặc định mà các gói được gửi đến và đọc từ các lệnh gọi read()write().

Thông số

  • socketId

    số

    socketId.

  • hostname

    chuỗi

    Tên máy chủ hoặc địa chỉ IP của máy từ xa.

  • cổng

    số

    Cổng của máy từ xa.

  • callback

    hàm

    Tham số callback có dạng như sau:

    (result: number) => void

    • kết quả

      số

create()

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

Tạo một ổ cắm thuộc loại đã chỉ định sẽ kết nối với máy từ xa đã chỉ định.

Thông số

  • loại

    Loại ổ cắm cần tạo. Phải là tcp hoặc udp.

  • tùy chọn

    CreateOptions không bắt buộc

    Các lựa chọn về ổ cắm.

  • callback

    hàm không bắt buộc

    Tham số callback có dạng như sau:

    (createInfo: CreateInfo) => void

Giá trị trả về

  • Promise<CreateInfo>

    Chrome 121 trở lên

    Các promise chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.

destroy()

chrome.socket.destroy(
  socketId: number,
)
: void

Huỷ ổ cắm. Mỗi ổ cắm được tạo phải bị huỷ sau khi sử dụng.

Thông số

  • socketId

    số

    socketId.

disconnect()

chrome.socket.disconnect(
  socketId: number,
)
: void

Ngắt kết nối ổ cắm. Đối với các socket UDP, disconnect không phải là một thao tác nhưng an toàn khi gọi.

Thông số

  • socketId

    số

    socketId.

getInfo()

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

Truy xuất trạng thái của ổ cắm đã cho.

Thông số

  • socketId

    số

    socketId.

  • callback

    hàm không bắt buộc

    Tham số callback có dạng như sau:

    (result: SocketInfo) => void

Giá trị trả về

  • Promise<SocketInfo>

    Chrome 121 trở lên

    Các promise chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.

getJoinedGroups()

chrome.socket.getJoinedGroups(
  socketId: number,
  callback: function,
)
: void

Lấy địa chỉ nhóm truyền tin đa hướng mà ổ cắm hiện đang tham gia.

Thông số

  • socketId

    số

    socketId.

  • callback

    hàm

    Tham số callback có dạng như sau:

    (groups: string[]) => void

    • nhóm

      string[]

getNetworkList()

Promise
chrome.socket.getNetworkList(
  callback?: function,
)
: Promise<NetworkInterface[]>

Truy xuất thông tin về các bộ chuyển đổi cục bộ trên hệ thống này.

Thông số

Giá trị trả về

  • Promise<NetworkInterface[]>

    Chrome 121 trở lên

    Các promise chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.

joinGroup()

chrome.socket.joinGroup(
  socketId: number,
  address: string,
  callback: function,
)
: void

Tham gia nhóm truyền tin đa hướng và bắt đầu nhận các gói từ nhóm đó. Ổ cắm phải thuộc loại UDP và phải được liên kết với một cổng cục bộ trước khi gọi phương thức này.

Thông số

  • socketId

    số

    socketId.

  • xử lý

    chuỗi

    Địa chỉ nhóm cần tham gia. Tên miền không được hỗ trợ.

  • callback

    hàm

    Tham số callback có dạng như sau:

    (result: number) => void

    • kết quả

      số

leaveGroup()

chrome.socket.leaveGroup(
  socketId: number,
  address: string,
  callback: function,
)
: void

Rời khỏi nhóm truyền tin đa hướng đã tham gia trước đó bằng joinGroup. Bạn không cần rời khỏi nhóm truyền tin đa hướng trước khi huỷ ổ cắm hoặc thoát. Hệ điều hành sẽ tự động gọi phương thức này.

Việc rời khỏi nhóm sẽ ngăn bộ định tuyến gửi các gói dữ liệu truyền tin đa hướng đến máy chủ cục bộ, giả sử không có quy trình nào khác trên máy chủ vẫn được liên kết với nhóm.

Thông số

  • socketId

    số

    socketId.

  • xử lý

    chuỗi

    Địa chỉ nhóm cần rời khỏi. Tên miền không được hỗ trợ.

  • callback

    hàm

    Tham số callback có dạng như sau:

    (result: number) => void

    • kết quả

      số

listen()

chrome.socket.listen(
  socketId: number,
  address: string,
  port: number,
  backlog?: number,
  callback: function,
)
: void

Phương thức này chỉ áp dụng cho các socket TCP. Theo dõi các kết nối trên cổng và địa chỉ được chỉ định. Điều này khiến socket này trở thành một socket máy chủ và các hàm socket máy khách (kết nối, đọc, ghi) không còn được dùng trên socket này nữa.

Thông số

  • socketId

    số

    socketId.

  • xử lý

    chuỗi

    Địa chỉ của máy cục bộ.

  • cổng

    số

    Cổng của máy cục bộ.

  • backlog

    number không bắt buộc

    Độ dài của hàng đợi nghe của ổ cắm.

  • callback

    hàm

    Tham số callback có dạng như sau:

    (result: number) => void

    • kết quả

      số

read()

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

Đọc dữ liệu từ ổ cắm đã kết nối cho trước.

Thông số

  • socketId

    số

    socketId.

  • bufferSize

    number không bắt buộc

    Dung lượng bộ nhớ đệm đọc.

  • callback

    hàm

    Tham số callback có dạng như sau:

    (readInfo: ReadInfo) => void

recvFrom()

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

Nhận dữ liệu từ socket UDP đã cho.

Thông số

  • socketId

    số

    socketId.

  • bufferSize

    number không bắt buộc

    Dung lượng bộ nhớ đệm nhận.

  • callback

    hàm

    Tham số callback có dạng như sau:

    (recvFromInfo: RecvFromInfo) => void

secure()

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

Bắt đầu kết nối máy khách TLS qua một ổ cắm máy khách TCP đã kết nối.

Thông số

  • socketId

    số

    Ổ cắm đã kết nối để sử dụng.

  • tùy chọn

    SecureOptions không bắt buộc

    Các ràng buộc và thông số cho kết nối TLS.

  • callback

    hàm

    Tham số callback có dạng như sau:

    (result: number) => void

    • kết quả

      số

sendTo()

chrome.socket.sendTo(
  socketId: number,
  data: ArrayBuffer,
  address: string,
  port: number,
  callback: function,
)
: void

Gửi dữ liệu trên ổ cắm UDP đã cho đến địa chỉ và cổng đã cho.

Thông số

  • socketId

    số

    socketId.

  • khác

    ArrayBuffer

    Dữ liệu cần ghi.

  • xử lý

    chuỗi

    Địa chỉ của máy từ xa.

  • cổng

    số

    Cổng của máy từ xa.

  • callback

    hàm

    Tham số callback có dạng như sau:

    (writeInfo: WriteInfo) => void

setKeepAlive()

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

Bật hoặc tắt chức năng duy trì kết nối cho một kết nối TCP.

Thông số

  • socketId

    số

    socketId.

  • bật

    boolean

    Nếu đúng, hãy bật chức năng duy trì kết nối.

  • trì hoãn

    number không bắt buộc

    Đặt số giây trễ giữa gói dữ liệu cuối cùng nhận được và lần thăm dò đầu tiên để duy trì hoạt động. Giá trị mặc định là 0.

  • callback

    hàm

    Tham số callback có dạng như sau:

    (result: boolean) => void

    • kết quả

      boolean

setMulticastLoopbackMode()

chrome.socket.setMulticastLoopbackMode(
  socketId: number,
  enabled: boolean,
  callback: function,
)
: void

Đặt xem các gói truyền tin đa hướng được gửi từ máy chủ đến nhóm truyền tin đa hướng có được chuyển ngược lại máy chủ hay không.

Lưu ý: hành vi của setMulticastLoopbackMode có một chút khác biệt giữa Windows và các hệ thống tương tự như Unix. Sự không nhất quán chỉ xảy ra khi có nhiều ứng dụng trên cùng một máy chủ tham gia cùng một nhóm truyền tin đa hướng trong khi có các chế độ cài đặt khác nhau về chế độ truyền tin đa hướng vòng lặp. Trên Windows, các ứng dụng có chế độ loopback ở trạng thái tắt sẽ không NHẬN các gói loopback; trong khi trên các hệ thống tương tự như Unix, các ứng dụng có chế độ loopback ở trạng thái tắt sẽ không GỬI các gói loopback đến các ứng dụng khác trên cùng một máy chủ. Xem MSDN: https://learn.microsoft.com/en-us/windows/win32/winsock/ip-multicast-2

Bạn không cần có quyền truyền tin đa hướng để gọi phương thức này.

Thông số

  • socketId

    số

    socketId.

  • đang bật

    boolean

    Cho biết có bật chế độ truyền dữ liệu vòng lặp hay không.

  • callback

    hàm

    Tham số callback có dạng như sau:

    (result: number) => void

    • kết quả

      số

setMulticastTimeToLive()

chrome.socket.setMulticastTimeToLive(
  socketId: number,
  ttl: number,
  callback: function,
)
: void

Đặt thời gian tồn tại của các gói truyền tin đa hướng được gửi đến nhóm truyền tin đa hướng.

Bạn không cần có quyền truyền tin đa hướng để gọi phương thức này.

Thông số

  • socketId

    số

    socketId.

  • ttl

    số

    Giá trị thời gian tồn tại.

  • callback

    hàm

    Tham số callback có dạng như sau:

    (result: number) => void

    • kết quả

      số

setNoDelay()

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

Đặt hoặc xoá TCP_NODELAY cho một kết nối TCP. Thuật toán Nagle sẽ bị vô hiệu hoá khi bạn đặt TCP_NODELAY.

Thông số

  • socketId

    số

    socketId.

  • noDelay

    boolean

    Nếu đúng, thuật toán Nagle sẽ bị vô hiệu hoá.

  • callback

    hàm

    Tham số callback có dạng như sau:

    (result: boolean) => void

    • kết quả

      boolean

write()

chrome.socket.write(
  socketId: number,
  data: ArrayBuffer,
  callback: function,
)
: void

Ghi dữ liệu vào ổ cắm đã kết nối cho trước.

Thông số

  • socketId

    số

    socketId.

  • khác

    ArrayBuffer

    Dữ liệu cần ghi.

  • callback

    hàm

    Tham số callback có dạng như sau:

    (writeInfo: WriteInfo) => void