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 đây có trong API "socket".
Tệp kê khai
Loại
CreateInfo
Thuộc tính
-
socketId
số
Mã nhận dạng của cổng kết nối mới được tạo. Xin lưu ý rằng mã nhận dạng cổng kết nối được tạo từ API này không tương thích với mã nhận dạng cổng kết nối được tạo từ các API khác, chẳng hạn như API
[socket](../socket/)không dùng nữa.
DnsQueryType
Lựa chọn ưu tiên về 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.
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 (được cắt bớt theo dung lượng bộ nhớ đệm hiện tại).
-
remoteAddress
chuỗi
Địa chỉ của máy chủ lưu trữ mà gói dữ liệu đến từ đó.
-
remotePort
số
Cổng của máy chủ mà gói dữ liệu đế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 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
number không bắt buộc
Kích thước của vùng đệm dùng để nhận dữ liệu. Nếu bạn không chỉ định rõ dung lượng bộ nhớ đệm, thì giá trị này 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, 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, thì cổng này sẽ 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 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 sự kiện onReceive hay không.
-
bền vững
boolean
Cờ cho biết liệu cổng kết nối có được 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ổng kết nối.
SocketProperties
Thuộc tính
-
bufferSize
number 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ỏ để 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.
-
bền vững
boolean không bắt buộc
Cờ cho biết liệu ổ cắm có được 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 của ứng dụng). Giá trị mặc định là "false". Khi ứng dụng được tải, mọi cổng kết nối đã 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ổng kết nối. Đối với điểm cuối máy 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 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ợ 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ừ 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 miễn phí.
-
callback
hàm
Tham số
callbackcó 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()
chrome.sockets.udp.close(
socketId: number,
callback?: function,
): Promise<void>
Đóng cổng kết nối và giải phóng địa chỉ/cổng mà cổng kết nối được liên kết. Mỗi cổng kết nối được tạo phải được đóng 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, ổ 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ố
callbackcó dạng như sau:() => void
Giá trị trả về
-
Promise<void>
Chrome 121 trở lênLờ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()
chrome.sockets.udp.create(
properties?: SocketProperties,
callback?: function,
): Promise<CreateInfo>
Tạo một cổng UDP có các thuộc tính đã cho.
Thông số
-
tài sản
SocketProperties không bắt buộ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ố
callbackcó 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ênLờ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()
chrome.sockets.udp.getInfo(
socketId: number,
callback?: function,
): Promise<SocketInfo>
Truy xuất trạng thái của cổng đã cho.
Thông số
-
socketId
số
Mã nhận dạng ổ cắm.
-
callback
hàm không bắt buộc
Tham số
callbackcó dạng như sau:(socketInfo: SocketInfo) => void
-
socketInfo
Đối tượng chứa thông tin về cổng kết nối.
-
Giá trị trả về
-
Promise<SocketInfo>
Chrome 121 trở lênLờ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.sockets.udp.getJoinedGroups(
socketId: number,
callback?: function,
): Promise<string[]>
Lấy địa chỉ nhóm đa truyền 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ố
callbackcó 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ênLờ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()
chrome.sockets.udp.getSockets(
callback?: function,
): Promise<SocketInfo[]>
Truy xuất danh sách các cổng kết nối hiện đang mở thuộc sở hữu của ứng dụng.
Thông số
-
callback
hàm không bắt buộc
Tham số
callbackcó dạng như sau:(socketInfos: SocketInfo[]) => void
-
socketInfos
Mảng đối tượng chứa thông tin về cổng kết nối.
-
Giá trị trả về
-
Promise<SocketInfo[]>
Chrome 121 trở lênLờ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,
): void
Tham gia nhóm đa truyền 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.
Thông số
-
socketId
số
Mã nhận dạng ổ cắm.
-
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ố
callbackcó 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,
): void
Rời khỏi nhóm đa truyền đã 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 đóng.
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ố
Mã nhận dạng ổ cắm.
-
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ố
callbackcó 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,
): void
Gửi dữ liệu trên cổng kết nối đã cho đến đị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.
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ênLựa chọn ưu tiên về việc phân giải địa chỉ.
-
callback
hàm
Tham số
callbackcó dạng như sau:(sendInfo: SendInfo) => void
-
sendInfo
Kết quả của phương thức
send.
-
setBroadcast()
chrome.sockets.udp.setBroadcast(
socketId: number,
enabled: boolean,
callback: function,
): void
Bật hoặc tắt các gói truyền phát trên cổng 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ố
callbackcó 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 đ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ố
Mã nhận dạng ổ cắm.
-
đang bật
boolean
Cho biết có bật chế độ lặp lại hay không.
-
callback
hàm
Tham số
callbackcó 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,
): 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ố
Mã nhận dạng ổ cắm.
-
ttl
số
Giá trị thời gian tồn tại.
-
callback
hàm
Tham số
callbackcó 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()
chrome.sockets.udp.setPaused(
socketId: number,
paused: boolean,
callback?: function,
): Promise<void>
Tạm dừng hoặc tiếp tục một cổng kết nối. Một cổng kết nối bị tạm dừng sẽ bị chặn kích hoạt các sự kiện onReceive.
Thông số
-
socketId
số
Mã nhận dạng ổ cắm.
-
tạm dừng
boolean
Cờ cho biết nên tạm dừng hay tiếp tục.
-
callback
hàm không bắt buộc
Tham số
callbackcó dạng như sau:() => void
Giá trị trả về
-
Promise<void>
Chrome 121 trở lênLờ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()
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ố
callbackcó dạng như sau:() => void
Giá trị trả về
-
Promise<void>
Chrome 121 trở lênLờ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 kích hoạt khi nhận được một gói UDP cho cổng đã cho.
Thông số
-
callback
hàm
Tham số
callbackcó dạng như sau:(info: ReceiveInfo) => void
-
info
-
onReceiveError
chrome.sockets.udp.onReceiveError.addListener(
callback: function,
)
Sự kiện được kích hoạt 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 của cổng kết nối. Sau khi sự kiện này được kích hoạt, socket sẽ bị tạm dừng và không có sự kiện onReceive nào khác được kích hoạt cho socket này cho đến khi socket được tiếp tục.
Thông số
-
callback
hàm
Tham số
callbackcó dạng như sau:(info: ReceiveErrorInfo) => void
-
info
-