chrome.sockets.tcp

Mô tả

Sử dụng API chrome.sockets.tcp để gửi và nhận dữ liệu qua mạng bằng kết nối TCP. API này thay thế chức năng TCP trước đây có trong API chrome.socket.

Tệp kê khai

Bạn phải khai báo các khoá sau trong tệp kê khai để sử dụng API này.

"sockets"

Loại

CreateInfo

Thuộc tính

  • socketId

    số

    Mã nhận dạng của cổng kết nối mới được tạo. Xin lưu ý rằng mã nhận dạng cổng kết nối được tạo từ API này không tương thích với mã nhận dạng cổng kết nối được tạo từ các API khác, chẳng hạn như API [socket](../socket/) không dùng nữa.

DnsQueryType

Chrome 103 trở lên

Lựa chọn ưu tiên về phân giải DNS. Giá trị mặc định là any và sử dụng cấu hình hệ điều hành hiện tại, có thể trả về IPv4 hoặc IPv6. ipv4 buộc sử dụng IPv4 và ipv6 buộc sử dụng IPv6.

Enum

"any"

"ipv4"

"ipv6"

ReceiveErrorInfo

Thuộc tính

  • resultCode

    số

    Mã kết quả được trả về từ lệnh gọi mạng cơ bản.

  • socketId

    số

    Giá trị nhận dạng cổng kết nối.

ReceiveInfo

Thuộc tính

  • khác

    ArrayBuffer

    Dữ liệu nhận được, có kích thước tối đa là bufferSize.

  • socketId

    số

    Giá trị nhận dạng cổng kết nối.

SecureOptions

Thuộc tính

SendInfo

Thuộc tính

  • bytesSent

    number không bắt buộc

    Số byte đã gửi (nếu kết quả == 0)

  • resultCode

    số

    Mã kết quả được trả về từ lệnh gọi mạng cơ bản. Giá trị âm cho biết có lỗi.

SocketInfo

Thuộc tính

  • bufferSize

    number không bắt buộc

    Kích thước của vùng đệm dùng để nhận dữ liệu. Nếu bạn không chỉ định rõ dung lượng bộ nhớ đệm, thì giá trị này sẽ không được cung cấp.

  • đã kết nối

    boolean

    Cờ cho biết liệu ổ cắm có được kết nối với một ứng dụng ngang hàng từ xa hay không.

  • localAddress

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

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

  • localPort

    number không bắt buộc

    Nếu cổng cơ bản được kết nối, thì cổng này sẽ chứa cổng cục bộ.

  • tên

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

    Chuỗi do ứng dụng xác định liên kết với ổ cắm.

  • tạm dừng

    boolean

    Cờ cho biết liệu một cổng kết nối có chặn cổng ngang hàng gửi thêm dữ liệu hay không (xem setPaused).

  • peerAddress

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

    Nếu cổng kết nối cơ bản được kết nối, thì cổng này sẽ chứa địa chỉ ngang hàng/IPv4/6.

  • peerPort

    number không bắt buộc

    Nếu cổng cơ bản được kết nối, thì sẽ chứa cổng ngang hàng.

  • bền vững

    boolean

    Cờ cho biết liệu cổng kết nối có được mở khi ứng dụng bị tạm ngưng hay không (xem SocketProperties.persistent).

  • socketId

    số

    Giá trị nhận dạng cổng kết nối.

SocketProperties

Thuộc tính

  • bufferSize

    number không bắt buộc

    Kích thước của vùng đệm dùng để nhận dữ liệu. Giá trị mặc định là 4096.

  • tên

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

    Một chuỗi do ứng dụng xác định được liên kết với ổ cắm.

  • bền vững

    boolean không bắt buộc

    Cờ cho biết liệu ổ cắm có được mở khi trang sự kiện của ứng dụng bị huỷ tải hay không (xem phần Quản lý vòng đời của ứng dụng). Giá trị mặc định là "false". Khi ứng dụng được tải, mọi cổng kết nối đã mở trước đó bằng persistent=true đều có thể được tìm nạp bằng getSockets.

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.

    Các giá trị tls1 và tls1.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ị này sẽ được tự động giới hạn thành tls1.2. Nếu max được đặt thành một trong các giá trị đó hoặc bất kỳ giá trị nào khác không được nhận dạng, thì giá trị đó sẽ bị bỏ qua mà không có thông báo.

Phương thức

close()

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

Đóng cổng kết nối và giải phóng địa chỉ/cổng mà cổng kết nối được liên kết. Mỗi cổng kết nối được tạo phải được đóng sau khi sử dụng. Mã ổ cắm không còn hợp lệ ngay khi hàm được gọi. Tuy nhiên, ổ cắm chỉ được đảm bảo đóng khi lệnh gọi lại được gọi.

Thông số

  • socketId

    số

    Giá trị nhận dạng cổng kết nối.

  • callback

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

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

    () => void

Giá trị trả về

  • Promise<void>

    Chrome 121 trở lên

    Lời hứa 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.

connect()

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

Kết nối cổng với một máy từ xa. Khi thao tác connect hoàn tất thành công, các sự kiện onReceive sẽ được kích hoạt khi nhận được dữ liệu từ ứng dụng ngang hàng. Nếu xảy ra lỗi mạng trong khi thời gian chạy đang nhận gói, thì sự kiện onReceiveError sẽ được kích hoạt. Tại thời điểm đó, sẽ không có sự kiện onReceive nào khác được kích hoạt cho cổng này cho đến khi phương thức resume được gọi.

Thông số

  • socketId

    số

    Giá trị nhận dạng cổng kết nối.

  • peerAddress

    chuỗi

    Địa chỉ của máy từ xa. Hỗ trợ tên DNS, định dạng IPv4 và IPv6.

  • peerPort

    số

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

  • dnsQueryType

    DnsQueryType không bắt buộc

    Chrome 103 trở lên

    Lựa chọn ưu tiên về việc phân giải địa chỉ.

  • callback

    hàm

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

    (result: number) => void

    • kết quả

      số

      Mã kết quả được trả về từ lệnh gọi mạng cơ bản. Giá trị âm cho biết có lỗi.

create()

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

Tạo một cổng TCP.

Thông số

  • tài sản

    SocketProperties không bắt buộc

    Thuộc tính của ổ cắm (không bắt buộc).

  • callback

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

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

    (createInfo: CreateInfo) => void

    • createInfo

      Kết quả của việc tạo ổ cắm.

Giá trị trả về

  • Promise<CreateInfo>

    Chrome 121 trở lên

    Lời hứa 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.

disconnect()

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

Ngắt kết nối ổ cắm.

Thông số

  • socketId

    số

    Giá trị nhận dạng cổng kết nối.

  • callback

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

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

    () => void

Giá trị trả về

  • Promise<void>

    Chrome 121 trở lên

    Lời hứa 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.

getInfo()

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

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

Thông số

  • socketId

    số

    Giá trị nhận dạng cổng kết nối.

  • callback

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

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

    (socketInfo: SocketInfo) => void

    • socketInfo

      Đối tượng chứa thông tin về cổng kết nối.

Giá trị trả về

  • Promise<SocketInfo>

    Chrome 121 trở lên

    Lời hứa 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.

getSockets()

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

Truy xuất danh sách các cổng kết nối hiện đang mở thuộc sở hữu của ứng dụng.

Thông số

  • callback

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

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

    (socketInfos: SocketInfo[]) => void

    • socketInfos

      Mảng đối tượng chứa thông tin về cổng kết nối.

Giá trị trả về

  • Promise<SocketInfo[]>

    Chrome 121 trở lên

    Lời hứa 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.

secure()

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

Bắt đầu kết nối ứng dụng TLS qua điểm cuối máy khách TCP đã kết nối.

Thông số

  • socketId

    số

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

  • tùy chọn

    SecureOptions không bắt buộc

    Các quy tắc ràng buộc và tham 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ố

send()

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

Gửi dữ liệu trên cổng TCP đã cho.

Thông số

  • socketId

    số

    Giá trị nhận dạng cổng kết nối.

  • khác

    ArrayBuffer

    Dữ liệu cần gửi.

  • callback

    hàm

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

    (sendInfo: SendInfo) => void

    • sendInfo

      Kết quả của phương thức send.

setKeepAlive()

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

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

Thông số

  • socketId

    số

    Giá trị nhận dạng cổng kết nối.

  • bật

    boolean

    Nếu đúng, hãy bật chức năng duy trì hoạt động.

  • 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à đầu dò duy trì kết nối đầu tiên. Giá trị mặc định là 0.

  • callback

    hàm

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

    (result: number) => void

    • kết quả

      số

      Mã kết quả được trả về từ lệnh gọi mạng cơ bản. Giá trị âm cho biết có lỗi.

setNoDelay()

chrome.sockets.tcp.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 của Nagle sẽ bị tắt khi bạn đặt TCP_NODELAY.

Thông số

  • socketId

    số

    Giá trị nhận dạng cổng kết nối.

  • noDelay

    boolean

    Nếu đúng, hãy tắt thuật toán của Nagle.

  • callback

    hàm

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

    (result: number) => void

    • kết quả

      số

      Mã kết quả được trả về từ lệnh gọi mạng cơ bản. Giá trị âm cho biết có lỗi.

setPaused()

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

Bật hoặc tắt tính năng nhận thông báo từ ứng dụng ngang hàng. Giá trị mặc định là "false". Ứng dụng thường tạm dừng một cổng kết nối để điều tiết dữ liệu do ứng dụng ngang hàng gửi. Khi một cổng kết nối bị tạm dừng, sẽ không có sự kiện onReceive nào được kích hoạt. Khi một cổng kết nối được kết nối và không bị tạm dừng, các sự kiện onReceive sẽ được kích hoạt lại khi nhận được thông báo.

Thông số

  • socketId

    số

  • tạm dừng

    boolean

  • callback

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

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

    () => void

Giá trị trả về

  • Promise<void>

    Chrome 121 trở lên

    Lời hứa 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.

update()

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

Cập nhật các thuộc tính của ổ cắm.

Thông số

  • socketId

    số

    Giá trị nhận dạng cổng kết nối.

  • tài sản

    Các thuộc tính cần cập nhật.

  • callback

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

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

    () => void

Giá trị trả về

  • Promise<void>

    Chrome 121 trở lên

    Lời hứa 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.

Sự kiện

onReceive

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

Sự kiện được kích hoạt khi nhận được dữ liệu cho một cổng kết nối nhất định.

Thông số

onReceiveError

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

Sự kiện được kích hoạt khi xảy ra lỗi mạng trong khi thời gian chạy đang chờ dữ liệu trên địa chỉ và cổng của cổng kết nối. Sau khi sự kiện này được kích hoạt, socket sẽ được đặt thành paused và không có sự kiện onReceive nào khác được kích hoạt cho socket này.

Thông số