chrome.socket

Mô tả

Sử dụng chrome.socket API để gửi và nhận dữ liệu qua mạng bằng 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 và được thay thế bằng các API sockets.udp, sockets.tcp và sockets.tcpServer.

Quyền

socket

Loại

AcceptInfo

Thuộc tính

  • resultCode

    số

  • socketId

    number không bắt buộc

    Mã của cổng kết nối đượ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 hiện có.

  • tên

    chuỗi

    Tên cơ bản của bộ chuyển đổi. Trên *nix, đâ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ố

    Mã kết quả đượ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ố

    Mã kết quả đượ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ổng kết nối cơ sở có được kết nối hay không.

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

    Đối với ổ cắm udp, điều này chỉ thể hiện 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, 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 liên kết hoặc kết nối, thì cổng này sẽ chứa cổng cục bộ.

  • 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ỉ IPv4/6 của ứng dụng ngang hàng.

  • 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 của ứng dụng ngang hàng đã kết nối.

  • socketType

    Loại socket được 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.

    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.

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

Phương thức này chỉ áp dụng cho cổng TCP. Đăng ký một hàm callback để gọi khi một kết nối được chấp nhận trên điểm cuối máy chủ đang nghe này. Bạn phải gọi Listen trước. Nếu đã có một lệnh gọi lại chấp nhận đang hoạt động, thì lệnh gọi lại này sẽ được gọi ngay lập tức kèm theo lỗi dưới dạng 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ổng kết nối. Hiện tại, tính năng này không hỗ trợ cổng 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ổng với máy từ xa (đối với cổng 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ừ đó cho các lệnh gọi read() và 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 để 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,
)
: void

Huỷ socket. Mỗi cổng kết nối đượ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ổng UDP, disconnect là một thao tác không hoạt động nhưng an toàn để 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ổng đã 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,
)
: void

Lấy địa chỉ nhóm đa truyền 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ề 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,
)
: void

Tham gia nhóm multicast 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ỉ của 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 đa truyền đã tham gia trước đó bằng joinGroup. Bạn không cần phải rời khỏi nhóm đa truyền trước khi huỷ socket 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 gói dữ liệu đ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 tham gia vào nhóm.

Thông số

  • socketId

    số

    SocketId.

  • xử lý

    chuỗi

    Địa chỉ của 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ắm TCP. Nghe các kết nối trên cổng và địa chỉ được chỉ định. Điều này biến socket này 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 dùng được 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ộ.

  • tồn đọng

    number không bắt buộc

    Độ dài của hàng đợi nghe của cổng kết nối.

  • 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ổng kết nối đã cho.

Thông số

  • socketId

    số

    SocketId.

  • bufferSize

    number không bắt buộc

    Kích thước vùng đệ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ừ cổng 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 điểm cuối máy khách TCP đã kết nối.

Thông số

  • socketId

    số

    Ổ cắm đượ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ố

sendTo()

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

Gửi dữ liệu trên cổng 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ì hoạt động 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ì 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: boolean) => void

    • kết quả

      boolean

setMulticastLoopbackMode()

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

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

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

Bạn không cần có quyền multicast để 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 của Nagle sẽ bị tắt khi bạn đặt TCP_NODELAY.

Thông số

  • socketId

    số

    socketId.

  • 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: boolean) => void

    • kết quả

      boolean

write()

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

Ghi dữ liệu trên cổng kết nối đã cho.

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