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 "ổ cắm".
Tệp kê khai
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ã ổ 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
Lựa chọn ưu tiên về việc 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
"bất kỳ"
"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ộ đệm hiện tại).
-
remoteAddress
chuỗi
Địa chỉ của máy chủ lưu trữ gói.
-
remotePort
số
Cổng của máy chủ lưu trữ gói.
-
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
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õ kích thước vùng đệ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, chứa địa chỉ IPv4/6 cục bộ.
-
localPort
số 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 sự kiện onReceive hay không.
-
liên tục
boolean
Cờ cho biết liệu ổ cắm 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ắ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ỏ để 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
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ó đượ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 ứng dụng). Giá trị mặc định là "false". Khi ứng dụng được tải, mọi ổ cắm đã 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,
)
Liên kết địa chỉ và cổng cục bộ cho ổ cắm. Đối với ổ cắm ứng dụng, bạn nên sử dụng cổng 0 để cho phép 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 kích hoạt khi 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ã ổ 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.
-
lệnh gọi lại
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 có lỗi.
-
close()
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. Mỗi ổ cắm đượ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 được đảm bảo chỉ đóng khi lệnh gọi lại được gọi.
Thông số
-
socketId
số
Mã ổ cắm.
-
lệnh gọi lại
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ê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,
)
Tạo một ổ cắm UDP có các thuộc tính đã cho.
Thông 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).
-
lệnh gọi lại
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ê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,
)
Truy xuất trạng thái của ổ cắm đã cho.
Thông số
-
socketId
số
Mã ổ cắm.
-
lệnh gọi lại
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ê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,
)
Lấy địa chỉ nhóm đa điểm mà ổ cắm hiện đang tham gia.
Thông số
-
socketId
số
Mã ổ cắm.
-
lệnh gọi lại
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à ổ cắm đã 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,
)
Truy xuất danh sách các ổ cắm hiện đang mở thuộc sở hữu của ứng dụng.
Thông số
-
lệnh gọi lại
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ê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,
)
Tham gia nhóm multicast và bắt đầu nhận 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ã ổ cắm.
-
xử lý
chuỗi
Địa chỉ nhóm để tham gia. Tên miền không được hỗ trợ.
-
lệnh gọi lại
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 có lỗi.
-
leaveGroup()
chrome.sockets.udp.leaveGroup(
socketId: number,
address: string,
callback: function,
)
Rời khỏi nhóm multicast đã tham gia trước đó bằng joinGroup
. Bạn chỉ cần gọi lệnh này nếu dự định tiếp tục sử dụng ổ cắm sau đó, vì hệ điều hành sẽ tự động thực hiện việc này khi ổ cắm 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 đa điểm đế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òn tham gia nhóm.
Thông số
-
socketId
số
Mã ổ cắm.
-
xử lý
chuỗi
Địa chỉ của nhóm mà bạn muốn rời khỏi. Tên miền không được hỗ trợ.
-
lệnh gọi lại
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 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ắ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ã ổ cắm.
-
dữ liệu
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ỉ.
-
lệnh gọi lại
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.sockets.udp.setBroadcast(
socketId: number,
enabled: boolean,
callback: function,
)
Bật hoặc tắt gói truyền tin trên ổ cắm này.
Thông số
-
socketId
số
Mã ổ cắm.
-
đang bật
boolean
true
để bật gói truyền tin,false
để tắt gói truyền tin. -
lệnh gọi lại
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,
)
Đặt xem các gói truyền tin nhiều điểm đến được gửi từ máy chủ đến nhóm truyền tin nhiều điểm đến có được lặp lại về máy chủ hay không.
Lưu ý: hành vi của setMulticastLoopbackMode
có chút khác biệt giữa Windows và các hệ thống giống Unix. Tình trạng 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 cùng một nhóm multicast trong khi có các chế độ cài đặt khác nhau trên chế độ loopback multicast. Trên Windows, các ứng dụng tắt tính năng vòng lặp sẽ không NHẬN được các gói vòng lặp; trong khi trên các hệ thống tương tự Unix, các ứng dụng tắt tính năng 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 truyền đa điểm.
Thông số
-
socketId
số
Mã ổ cắm.
-
đang bật
boolean
Cho biết có bật chế độ vòng lặp hay không.
-
lệnh gọi lại
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 có lỗi.
-
setMulticastTimeToLive()
chrome.sockets.udp.setMulticastTimeToLive(
socketId: number,
ttl: number,
callback: function,
)
Đặt thời gian tồn tại của các gói truyền tin nhiều điểm đến được gửi đến nhóm truyền tin nhiều điểm đến.
Việc gọi phương thức này không yêu cầu quyền truyền đa điểm.
Thông số
-
socketId
số
Mã ổ cắm.
-
ttl
số
Giá trị thời gian tồn tại.
-
lệnh gọi lại
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 có lỗi.
-
setPaused()
chrome.sockets.udp.setPaused(
socketId: number,
paused: boolean,
callback?: function,
)
Tạm dừng hoặc huỷ tạm dừng ổ cắm. Ổ cắm bị tạm dừng sẽ bị chặn kích hoạt các sự kiện onReceive
.
Thông số
-
socketId
số
-
tạm dừng
boolean
Cờ cho biết liệu bạn nên tạm dừng hay tiếp tục.
-
lệnh gọi lại
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ê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,
)
Cập nhật các thuộc tính của ổ cắm.
Thông số
-
socketId
số
Mã ổ cắm.
-
các tài sản
Các thuộc tính cần cập nhật.
-
lệnh gọi lại
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ê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 gói UDP cho ổ cắm nhất định.
Thông số
-
lệnh gọi lại
hàm
Tham số
callback
có 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ắm. Sau khi sự kiện này được kích hoạt, ổ cắm sẽ bị tạm dừng và không có sự kiện onReceive
nào khác sẽ được kích hoạt cho ổ cắm này cho đến khi ổ cắm được tiếp tục.
Thông số
-
lệnh gọi lại
hàm
Tham số
callback
có dạng như sau:(info: ReceiveErrorInfo) => void
-
info
-