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 các 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ắm mới tạo. Xin lưu ý rằng mã nhận dạng ổ cắm được tạo từ API này không tương thích với mã nhận dạng ổ cắm đượ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 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ấu hình này có thể trả về IPv4 hoặc IPv6. ipv4 buộc dùng IPv4 và ipv6 buộc 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ắm.

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ắm.

SecureOptions

Thuộc tính

SendInfo

Thuộc tính

  • bytesSent

    number không bắt buộc

    Số byte đã gửi (nếu result == 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 đã xảy ra lỗi.

SocketInfo

Thuộc tính

  • bufferSize

    number không bắt buộc

    Kích thước của bộ nhớ đệm dùng để nhận dữ liệu. Nếu bạn không chỉ định rõ kích thước vùng đệm, thì giá trị 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 thiết bị 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, hãy 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 kết nối, hãy chứa cổng cục bộ của ổ cắm đó.

  • tên

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

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

  • tạm dừng

    boolean

    Cờ cho biết liệu một ổ cắm đã kết nối có chặn thiết bị 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ắm cơ bản được kết nối, hãy chứa địa chỉ ngang hàng/ IPv4/6.

  • 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 ngang hàng.

  • liên tục

    boolean

    Cờ cho biết liệu ổ cắm có vẫn 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ắm.

SocketProperties

Thuộc tính

  • bufferSize

    number không bắt buộc

    Kích thước của bộ nhớ đệ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.

  • liên tục

    boolean không bắt buộc

    Cờ cho biết liệu ổ cắm có bị bỏ ngỏ khi trang sự kiện của ứng dụng được huỷ tải hay không (xem phần Quản lý vòng đời ứng dụng). Giá trị mặc định là "false". Khi ứng dụng được tải, mọi socket đã 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.

    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.

Phương thức

close()

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

Đóng ổ cắm và giải phóng địa chỉ/cổng mà ổ cắm được liên kết. Mỗi ổ cắm được tạo phải được đóng sau khi sử dụng. Mã nhận dạng ổ 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ắm.

  • 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

    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.

connect()

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

Kết nối ổ cắm 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 tạo khi dữ liệu được nhận từ thiết bị ngang hàng. Nếu xảy ra lỗi mạng trong khi thời gian chạy đang nhận các gói, thì sự kiện onReceiveError sẽ được tạo. Tại thời điểm đó, sẽ không có sự kiện onReceive nào khác được tạo cho ổ cắm 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ắm.

  • peerAddress

    chuỗi

    Địa chỉ của máy từ xa. Hỗ trợ định dạng tên DNS, 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 đã xảy ra lỗi.

create()

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

Tạo một socket TCP.

Thông số

  • tài sản

    SocketProperties không bắt buộc

    Cá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 quá trình tạo ổ cắm.

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.

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ắm.

  • 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

    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.

getInfo()

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

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

Thông số

  • socketId

    số

    Giá trị nhận dạng ổ cắm.

  • 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ắm.

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.

getSockets()

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

Truy xuất danh sách các ổ cắm hiện đang mở do ứng dụng sở hữu.

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ắm.

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.

secure()

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

Bắt đầu kết nối ứng dụng TLS qua ổ cắm ứng dụng 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 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ố

send()

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

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

Thông số

  • socketId

    số

    Giá trị nhận dạng ổ cắm.

  • 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ì kết nối cho một kết nối TCP.

Thông số

  • socketId

    số

    Giá trị nhận dạng ổ cắm.

  • 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: 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 đã xảy ra 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 Nagle sẽ bị vô hiệu hoá khi bạn đặt TCP_NODELAY.

Thông số

  • socketId

    số

    Giá trị nhận dạng ổ cắm.

  • 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: 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 đã xảy ra lỗi.

setPaused()

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

Cho phép hoặc không cho phép ứng dụng nhận thông báo từ ứng dụng ngang hàng. Giá trị mặc định là "false". Việc tạm dừng một socket thường được ứng dụng dùng để điều tiết dữ liệu do ứng dụng ngang hàng gửi. Khi một ổ cắm bị tạm dừng, sẽ không có sự kiện onReceive nào được tạo. Khi một ổ cắm đượ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 tin nhắn.

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

    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.

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ắm.

  • 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

    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.

Sự kiện

onReceive

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

Sự kiện được tạo khi dữ liệu đã được nhận cho một ổ cắm nhất định.

Thông số

onReceiveError

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

Sự kiện được tạo 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 socket. Sau khi sự kiện này được tạo, ổ cắm sẽ được đặt thành paused và không có sự kiện onReceive nào khác được tạo cho ổ cắm này.

Thông số