chrome.sockets.udp

Nội dung mô tả

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 đó 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

    number

    Mã của cổng mới được tạo. Lưu ý rằng mã cổng được tạo qua API này không tương thích với mã cổng được tạo qua 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 về cách 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 sử dụng IPv4 và ipv6 buộc sử dụng IPv6.

Liệt kê

"ipv4"

"ipv6"

ReceiveErrorInfo

Thuộc tính

  • resultCode

    number

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

  • socketId

    number

    Mã cổng.

ReceiveInfo

Thuộc tính

  • data

    ArrayBuffer

    Nội dung gói UDP (được cắt bớt theo dung lượng bộ nhớ đệm hiện tại).

  • remoteAddress

    string

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

  • remotePort

    number

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

  • socketId

    number

    Mã cổng.

SendInfo

Thuộc tính

  • bytesSent

    số không bắt buộc

    Số byte đã gửi (nếu kết quả == 0)

  • resultCode

    number

    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

    số không bắt buộc

    Kích thước của vùng đệm dùng để nhận dữ liệu. Nếu không có kích thước vùng đệ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, 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ị 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.

  • cố định

    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

    number

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

SocketProperties

Thuộc tính

  • bufferSize

    số không bắt buộc

    Kích thước của vùng đệm dùng để nhận dữ liệu. Nếu vùng đệm quá nhỏ nên không thể nhận gói UDP, 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.

  • cố định

    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 ứng dụng được tải, bạn có thể tìm nạp mọi ổ cắm đã mở trước đó bằng sustain=true 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ỉ và cổng cục bộ cho ổ cắm. Đối với ổ cắm máy khách, bạn nên sử dụng cổng 0 để cho phép nền tảng chọn 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ẽ tăng lên khi các gói UDP đến địa chỉ/cổng đã chỉ định – trừ phi socket bị tạm dừng.

Tham số

  • socketId

    number

    Mã cổng.

  • xử lý

    string

    Đị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 tin từ tất cả các giao diện mạng cục bộ có sẵn.

  • cổng

    number

    Cổng của máy cục bộ. Sử dụng "0" để liên kết với 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ả

      number

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

Cam kết
chrome.sockets.udp.close(
  socketId: number,
  callback?: function,
)

Đóng ổ cắm và giải phóng địa chỉ/cổng mà ổ cắm được liên kết. Bạn phải đóng mỗi ổ cắm được tạo sau khi sử dụng. Mã cổng kết nối không còn hợp lệ ngay khi hàm được gọi. Tuy nhiên, ổ cắm được đảm bảo chỉ đóng khi lệnh gọi lại được thực hiện.

Tham số

  • socketId

    number

    Mã cổ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ề

  • Promise<void>

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

Cam kết
chrome.sockets.udp.create(
  properties?: SocketProperties,
  callback?: function,
)

Tạo một ổ cắm UDP với các thuộc tính nhất định.

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

getInfo()

Cam kết
chrome.sockets.udp.getInfo(
  socketId: number,
  callback?: function,
)

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

Tham số

  • socketId

    number

    Mã cổng.

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

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

Cam kết
chrome.sockets.udp.getJoinedGroups(
  socketId: number,
  callback?: function,
)

Lấy địa chỉ của nhóm phát đa hướng mà ổ cắm hiện đang tham gia.

Tham số

  • socketId

    number

    Mã cổng.

  • 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 gồm các nhóm mà cổng đã tham gia.

Giá trị trả về

  • Hứa hẹn<string[]>

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

Cam kết
chrome.sockets.udp.getSockets(
  callback?: function,
)

Truy xuất danh sách ổ cắm hiện đang mở do ứ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ề socket.

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.

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

    number

    Mã cổng.

  • xử lý

    string

    Địa chỉ của 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ả

      number

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

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

Khi rời khỏi nhóm này, bộ định tuyến sẽ không thể gửi các gói dữ liệu đa hướng đến máy chủ cục bộ, với giả định không có quá 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

    number

    Mã cổng.

  • xử lý

    string

    Địa chỉ của nhóm mà bạn muốn rời khỏ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ả

      number

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

Gửi dữ liệu trên một cổng nhất định 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

    number

    Mã cổng.

  • data

    ArrayBuffer

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

  • xử lý

    string

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

  • cổng

    number

    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ề độ phân giải của đị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 các gói tin truyền phát trên cổng này.

Tham số

  • socketId

    number

    Mã cổng.

  • đang bật

    boolean

    true để bật các gói tin truyền phát, false để tắt các gói này.

  • số gọi lại

    hàm

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

    (result: number)=>void

    • kết quả

      number

      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 đa hướng được gửi từ máy chủ đến nhóm phát đa hướng có được lặp lại tới máy chủ hay không.

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

    number

    Mã cổng.

  • đ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ả

      number

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

Thiết lập thời gian tồn tại của các gói đa hướng được gửi đến nhóm phát đ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

    number

    Mã cổng.

  • ttl

    number

    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ả

      number

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

Cam kết
chrome.sockets.udp.setPaused(
  socketId: number,
  paused: boolean,
  callback?: function,
)

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

Tham số

  • socketId

    number

  • tạm dừng

    boolean

    Gắn cờ để cho biết nê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ề

  • Promise<void>

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

Cam kết
chrome.sockets.udp.update(
  socketId: number,
  properties: SocketProperties,
  callback?: function,
)

Cập nhật các thuộc tính socket.

Tham số

  • socketId

    number

    Mã cổng.

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

  • Promise<void>

    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 xảy ra khi nhận được một 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ổng và cổng. Sau khi sự kiện này được kích hoạt, ổ cắm sẽ tạm dừng và sẽ không có sự kiện onReceive nào được tạo ra cho ổ cắm này cho đến khi ổ cắm được tiếp tục.

Tham số