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 các kết nối UDP. API này thay thế chức năng UDP trước đây có trong API "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 recvfrom() cơ bản.

  • socketId

    số

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

ReceiveInfo

Thuộc tính

  • khác

    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

    chuỗi

    Địa chỉ của máy chủ lưu trữ mà gói đến từ đó.

  • remotePort

    số

    Cổng của máy chủ mà gói đến từ đó.

  • socketId

    số

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

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.

  • localAddress

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

    Nếu ổ cắm cơ bản được liên kết, 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 liên kết, 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 ổ cắm 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ó 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. Nếu bộ nhớ đệ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

    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.

Phương thức

bind()

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

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

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

Thông số

  • socketId

    số

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

  • xử lý

    chuỗi

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

  • 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 trống.

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

close()

Promise
chrome.sockets.udp.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ố

    Mã 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.

create()

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

Tạo một socket UDP có các thuộc tính đã cho.

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.

getInfo()

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

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

Thông số

  • socketId

    số

    Mã 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.

getJoinedGroups()

Promise
chrome.sockets.udp.getJoinedGroups(
  socketId: number,
  callback?: function,
)
: Promise<string[]>

Lấy địa chỉ nhóm truyền tin đa hướng mà ổ cắm hiện đang tham gia.

Thông số

  • socketId

    số

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

  • callback

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

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

    (groups: string[]) => void

    • nhóm

      string[]

      Mảng các nhóm mà socket đã tham gia.

Giá trị trả về

  • Promise<string[]>

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

joinGroup()

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

Tham gia nhóm truyền tin đa hướng và bắt đầu nhận các gói từ nhóm đó. Bạn phải liên kết ổ cắm 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ố

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

  • xử lý

    chuỗi

    Địa chỉ 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ố

      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.

leaveGroup()

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

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

Việc rời khỏi nhóm sẽ ngăn bộ định tuyến gửi các gói dữ liệu truyền tin đ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 được liên kết với nhóm.

Thông số

  • socketId

    số

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

  • xử lý

    chuỗi

    Địa chỉ 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ố

      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.

send()

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

Gửi dữ liệu trên ổ cắm đã cho đến địa chỉ và cổng đã cho. Bạn phải liên kết ổ cắm 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ố

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

  • khác

    ArrayBuffer

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

  • xử lý

    chuỗi

    Đị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

    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:

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

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

Thông số

  • socketId

    số

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

  • đang bật

    boolean

    true để bật gói truyền tin, false để tắt gói truyền tin.

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

setMulticastLoopbackMode()

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

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

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

Thông số

  • socketId

    số

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

  • đang bật

    boolean

    Cho biết có bật chế độ truyền dữ liệu 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ố

      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.

setMulticastTimeToLive()

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

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

Bạn không cần có quyền truyền tin đa hướng để gọi phương thức này.

Thông số

  • socketId

    số

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

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

      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.udp.setPaused(
  socketId: number,
  paused: boolean,
  callback?: function,
)
: Promise<void>

Tạm dừng hoặc huỷ tạm dừng một ổ cắm. Một socket bị tạm dừng sẽ không thể kích hoạt các sự kiện onReceive.

Thông số

  • socketId

    số

  • tạm dừng

    boolean

    Cờ cho biết bạn muốn tạm dừng hay tiếp tục.

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

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

Sự kiện được tạo khi một gói UDP đã được nhận cho ổ cắm nhất định.

Thông số

onReceiveError

chrome.sockets.udp.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ẽ tạm dừng và không có sự kiện onReceive nào khác được tạo cho ổ cắm này cho đến khi ổ cắm được tiếp tục.

Thông số