chrome.socket

Mô tả

Sử dụng API chrome.socket để gửi và nhận dữ liệu qua mạng bằng các kết nối TCP và UDP. Lưu ý: Kể từ Chrome 33, API này không còn đượ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

    số không bắt buộc

    Mã của ổ cắm đã 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 hiện có.

  • tên

    chuỗi

    Tên cơ bản của bộ chuyển đổi. Trên *nix, thông thường, đây sẽ 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ơ sở có được kết nối hay không.

    Đối với ổ cắm tcp, điều này sẽ vẫn đúng ngay cả khi máy tính 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 biết rằng ổ cắm này sẽ bị ngắt kết nối thông qua disconnect().

    Đối với ổ cắm udp, giá trị này chỉ cho biết liệu địa chỉ từ xa mặc định đã được chỉ định để đọc và ghi 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, chứa địa chỉ IPv4/6 cục bộ.

  • localPort

    số không bắt buộc

    Nếu ổ cắm cơ bản được liên kết hoặc kết nối, hãy 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, chứa địa chỉ IPv4/6 của máy ngang hàng.

  • peerPort

    số 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 máy ngang hàng đã kết nối.

  • socketType

    Loại ổ cắm đã truyền. Đó 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.

    Các giá trị tls1tls1.1 không còn được hỗ trợ nữa. Nếu bạn đặt min thành một trong các giá trị này, thì giá trị đó sẽ được tự động cố định 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.

WriteInfo

Thuộc tính

  • bytesWritten

    số

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

Phương thức

accept()

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

Phương thức này chỉ áp dụng cho các ổ cắm TCP. Đăng ký một hàm gọi lại để được gọi khi một kết nối được chấp nhận trên ổ cắm máy chủ nghe này. Trước tiên, bạn phải gọi Listen. Nếu đã có 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 lỗi là 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,
)

Liên kết địa chỉ cục bộ cho ổ cắm. Hiện tại, API này không hỗ trợ ổ cắm 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,
)

Kết nối ổ cắm với máy từ xa (đối với ổ cắm tcp). Đối với ổ cắm udp, thao tác 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,
)

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 tuỳ chọn ổ 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

    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.

destroy()

chrome.socket.destroy(
  socketId: number,
)

Huỷ bỏ ổ 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,
)

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

Thông số

  • socketId

    số

    socketId.

getInfo()

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

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

    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.

getJoinedGroups()

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

Lấy địa chỉ nhóm đa điểm 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,
)

Truy xuất thông tin về 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

    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.

joinGroup()

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

Tham gia nhóm multicast và bắt đầu nhận gói từ nhóm đó. Socket 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 để 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,
)

Rời khỏi nhóm multicast đã tham gia trước đó bằng joinGroup. Bạn không cần phải rời khỏi nhóm multicast trước khi huỷ bỏ ổ 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 đa điểm đế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òn tham gia nhóm.

Thông số

  • socketId

    số

    socketId.

  • xử lý

    chuỗi

    Địa chỉ của nhóm mà bạn muố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,
)

Phương thức này chỉ áp dụng cho các ổ cắm TCP. Theo dõi các kết nối trên cổng và địa chỉ đã chỉ định. Điều này giúp biến ổ cắm này thành ổ cắm máy chủ và các hàm ổ cắm máy khách (kết nối, đọc, ghi) không thể sử dụng được trên ổ cắm 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ộ.

  • danh sách công việc tồn đọng

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

Đọc dữ liệu từ ổ cắm đã kết nối nhất định.

Thông số

  • socketId

    số

    socketId.

  • bufferSize

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

Nhận dữ liệu từ ổ cắm UDP đã cho.

Thông số

  • socketId

    số

    socketId.

  • bufferSize

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

Bắt đầu kết nối máy khách TLS qua ổ 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 quy tắ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,
)

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

Bật hoặc tắt chức năng duy trì kết nối cho 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

    số không bắt buộc

    Đặt số giây trễ giữa gói dữ liệu cuối cùng được nhận và lần thăm dò keepalive đầu tiên. 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,
)

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

Lưu ý: hành vi của setMulticastLoopbackMode có chút khác biệt giữa Windows và các hệ thống giống Unix. Tình trạng 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ủ lưu trữ tham gia cùng một nhóm multicast trong khi có các chế độ cài đặt khác nhau trên chế độ loopback multicast. Trên Windows, các ứng dụng tắt tính năng vòng lặp sẽ không NHẬN được các gói vòng lặp; trong khi trên các hệ thống tương tự Unix, các ứng dụng tắt tính năng vòng lặp sẽ không GỬI các gói vòng lặp đế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

Việc gọi phương thức này không yêu cầu quyền truyền đa điểm.

Thông số

  • socketId

    số

    socketId.

  • đang bật

    boolean

    Cho biết có bật chế độ 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,
)

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

Việc gọi phương thức này không yêu cầu quyền truyền đa điểm.

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

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

Thông số

  • socketId

    số

    socketId.

  • noDelay

    boolean

    Nếu là true, sẽ tắt thuật toán Nagle.

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

Ghi dữ liệu trên ổ cắm đã kết nối nhất định.

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