chrome.sockets.udp

Mô tả

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

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ã của ổ cắm mới được tạo. Lưu ý rằng mã ổ cắm được tạo từ API này không tương thích với mã ổ cắm được tạo từ các API khác, chẳng hạn như API [ổ cắm](../socket/) không dùng nữa.

DnsQueryType

Chrome 103 trở lên

Lựa chọn ưu tiên về hoạt động 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 thực thi IPv4, còn ipv6 buộc thực thi IPv6.

Enum

"any"

"ipv4"

"ipv6"

ReceiveErrorInfo

Thuộc tính

  • resultCode

    số

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

  • socketId

    số

    Mã ổ cắm.

ReceiveInfo

Thuộc tính

  • dữ liệu

    ArrayBuffer

    Nội dung gói UDP (bị cắt bớt theo kích thước bộ nhớ đệm hiện tại).

  • remoteAddress

    string

    Địa chỉ của máy chủ lưu trữ chứa gói dữ liệu.

  • remotePort

    số

    Cổng của máy chủ lưu trữ chứa gói dữ liệu.

  • socketId

    số

    Mã ổ cắm.

SendInfo

Thuộc tính

  • bytesSent

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

    số không bắt buộc

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

  • localAddress

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

    Nếu ổ cắm cơ bản bị ràng buộc, ổ cắm này sẽ chứa địa chỉ IPv4/6 cục bộ.

  • localPort

    số không bắt buộc

    Nếu ổ cắm cơ bản bị ràng buộc, ổ cắm này 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 được liên kết với ổ cắm.

  • tạm dừng

    boolean

    Cờ cho biết liệu cổng có bị chặn kích hoạt các sự kiện onReceive hay không.

  • liên tục

    boolean

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

  • socketId

    số

    Mã nhận dạng ổ cắm.

SocketProperties

Thuộc tính

  • bufferSize

    số không bắt buộc

    Dung lượng vùng đệm dùng để nhận dữ liệu. Nếu vùng đệm quá nhỏ để nhận gói UDP, thì dữ liệu sẽ bị mất. Giá trị mặc định là 4096.

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

  • liên tục

    boolean không bắt buộc

    Cờ cho biết liệu ổ cắm có đang 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 ứng dụng). Giá trị mặc định là "false". Khi tải ứng dụng, hệ thống có thể tìm nạp mọi cổng được mở trước đó bằng getSockets.

Phương thức

bind()

chrome.sockets.udp.bind(
  socketId: number,
  address: string,
  port: number,
  callback: function,
)

Liên kết địa chỉ cục bộ và cổng cho ổ cắm. Đối với ổ cắm ứng dụng khách, bạn nên sử dụng cổng 0 để cho phép nền tảng chọn một cổng miễn phí.

Sau khi thao tác bind hoàn tất thành công, các sự kiện onReceive sẽ được kích hoạt khi gói UDP đến địa chỉ/cổng được chỉ định – trừ khi cổng bị tạm dừng.

Tham số

  • socketId

    số

    Mã ổ cắm.

  • xử lý

    string

    Địa chỉ của máy cục bộ. Hỗ trợ tên DNS, định dạng IPv4 và IPv6. Sử dụng "0.0.0.0" để chấp nhận các gói từ mọi giao diện mạng cục bộ có sẵn.

  • cổng

    số

    Cổng của máy cục bộ. Sử dụng "0" để liên kết với một cổng miễn phí.

  • số gọi lại

    hàm

    Tham số callback sẽ 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.

close()

Lời hứa
chrome.sockets.udp.close(
  socketId: number,
  callback?: function,
)

Đóng ổ cắm và giải phóng địa chỉ/cổng mà ổ cắm đang liên kết. Bạn phải đóng mỗi ổ cắm đã tạo 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, socket được đảm bảo chỉ đóng khi lệnh gọi lại được thực hiện.

Tham số

  • socketId

    số

    Mã ổ cắm.

  • số gọi lại

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

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

    () => void

Giá trị trả về

  • Lời hứa<vô hiệu>

    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.

create()

Lời hứa
chrome.sockets.udp.create(
  properties?: SocketProperties,
  callback?: function,
)

Tạo một cổng UDP với các thuộc tính đã cho.

Tham số

  • các tài sản

    SocketProperties không bắt buộc

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

  • số gọi lại

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

    Tham số callback sẽ 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&lt;CreateInfo&gt;

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

Lời hứa
chrome.sockets.udp.getInfo(
  socketId: number,
  callback?: function,
)

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

Tham số

  • socketId

    số

    Mã ổ cắm.

  • số gọi lại

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

    Tham số callback sẽ 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&lt;SocketInfo&gt;

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

Lời hứa
chrome.sockets.udp.getJoinedGroups(
  socketId: number,
  callback?: function,
)

Lấy địa chỉ nhóm truyền đa hướng mà ổ cắm hiện đang kết nối.

Tham số

  • socketId

    số

    Mã ổ cắm.

  • số gọi lại

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

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

    (groups: string[]) => void

    • nhóm

      chuỗi[]

      Mảng các nhóm mà ổ cắm đã kết nối.

Giá trị trả về

  • Promise&lt;string[]&gt;

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

Lời hứa
chrome.sockets.udp.getSockets(
  callback?: function,
)

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

Tham số

  • số gọi lại

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

    Tham số callback sẽ 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&lt;SocketInfo[]&gt;

    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.sockets.udp.joinGroup(
  socketId: number,
  address: string,
  callback: function,
)

Tham gia nhóm phát đa hướng và bắt đầu nhận các gói từ nhóm đó. Ổ cắm 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.

Tham số

  • socketId

    số

    Mã ổ cắm.

  • xử lý

    string

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

  • số gọi lại

    hàm

    Tham số callback sẽ 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.

leaveGroup()

chrome.sockets.udp.leaveGroup(
  socketId: number,
  address: string,
  callback: function,
)

Rời khỏi nhóm phát đa hướng trước đó đã tham gia bằng joinGroup. Lệnh gọi này chỉ cần thiết nếu bạn định tiếp tục sử dụng ổ cắm, vì hệ điều hành sẽ tự động thực hiện việc này khi ổ cắm được đóng.

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

Tham số

  • socketId

    số

    Mã ổ cắm.

  • xử lý

    string

    Địa chỉ của nhóm mà bạn muốn rời đi. Tên miền không được hỗ trợ.

  • số gọi lại

    hàm

    Tham số callback sẽ 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.

send()

chrome.sockets.udp.send(
  socketId: number,
  data: ArrayBuffer,
  address: string,
  port: number,
  dnsQueryType?: DnsQueryType,
  callback: function,
)

Gửi dữ liệu trên cổng đã cho tới địa chỉ và cổng đã cho. Ổ cắm 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.

Tham số

  • socketId

    số

    Mã ổ cắm.

  • dữ liệu

    ArrayBuffer

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

  • xử lý

    string

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

  • cổng

    số

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

  • dnsQueryType

    DnsQueryType không bắt buộc

    Chrome 103 trở lên

    Phương thức phân giải địa chỉ.

  • số gọi lại

    hàm

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

    (sendInfo: SendInfo) => void

    • sendInfo

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

setBroadcast()

Chrome 44 trở lên
chrome.sockets.udp.setBroadcast(
  socketId: number,
  enabled: boolean,
  callback: function,
)

Bật hoặc tắt gói truyền tin trên cổng này.

Tham số

  • socketId

    số

    Mã ổ cắm.

  • đang bật

    boolean

    true để kích hoạt các gói truyền tin, false để tắt các gói đó.

  • số gọi lại

    hàm

    Tham số callback sẽ 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.

setMulticastLoopbackMode()

chrome.sockets.udp.setMulticastLoopbackMode(
  socketId: number,
  enabled: boolean,
  callback: function,
)

Thiết lập xem các gói phát đa hướng được gửi từ máy chủ đến nhóm phát đa hướng có được lặp lại với máy chủ hay không.

Lưu ý: hành vi của setMulticastLoopbackMode hơi khác giữa các hệ thống giống Windows và 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ủ lưu trữ liên kết với cùng một nhóm phát đa hướng trong khi có các chế độ cài đặt khác nhau trong chế độ lặp lại luồng phát (multicast). Trên Windows, các ứng dụng bị tắt vòng lặp sẽ không NHẬN các gói vòng lặp; còn trên các hệ thống giống Unix, ứng dụng bị tắt 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: http://goo.gl/6vqbj

Việc gọi phương thức này không yêu cầu quyền phát đa hướng.

Tham số

  • socketId

    số

    Mã ổ cắm.

  • đang bật

    boolean

    Cho biết có bật chế độ lặp lại hay không.

  • số gọi lại

    hàm

    Tham số callback sẽ 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.

setMulticastTimeToLive()

chrome.sockets.udp.setMulticastTimeToLive(
  socketId: number,
  ttl: number,
  callback: function,
)

Thiết lập thời gian tồn tại của các gói truyền đa hướng được gửi tới nhóm truyền đa hướng.

Việc gọi phương thức này không yêu cầu quyền phát đa hướng.

Tham số

  • socketId

    số

    Mã ổ cắm.

  • ttl

    số

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

  • số gọi lại

    hàm

    Tham số callback sẽ 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()

Lời hứa
chrome.sockets.udp.setPaused(
  socketId: number,
  paused: boolean,
  callback?: function,
)

Tạm dừng hoặc huỷ tạm dừng một ổ cắm. Một ổ cắm bị tạm dừng đã bị chặn kích hoạt các sự kiện onReceive.

Tham số

  • socketId

    số

  • tạm dừng

    boolean

    Gắn cờ để cho biết bạn muốn tạm dừng hay huỷ tạm dừng.

  • số gọi lại

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

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

    () => void

Giá trị trả về

  • Lời hứa<vô hiệu>

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

Lời hứa
chrome.sockets.udp.update(
  socketId: number,
  properties: SocketProperties,
  callback?: function,
)

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

Tham số

  • socketId

    số

    Mã ổ cắm.

  • các tài sản

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

  • số gọi lại

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

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

    () => void

Giá trị trả về

  • Lời hứa<vô hiệu>

    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.udp.onReceive.addListener(
  callback: function,
)

Sự kiện được đưa ra khi nhận được gói UDP cho ổ cắm đã cho.

Tham số

  • số gọi lại

    hàm

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

    (info: ReceiveInfo) => void

onReceiveError

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

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

Tham số