Mô tả
Sử dụng API chrome.sockets.tcp
để gửi và nhận dữ liệu qua mạng bằng các kết nối TCP. API này thay thế chức năng TCP trước đây có trong API chrome.socket
.
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ã 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
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 mạng cơ bản.
-
socketId
số
Giá trị nhận dạng ổ cắm.
ReceiveInfo
Thuộc tính
-
khác
ArrayBuffer
Dữ liệu nhận được, có kích thước tối đa là
bufferSize
. -
socketId
số
Giá trị nhận dạng ổ cắm.
SecureOptions
Thuộc tính
-
tlsVersion
TLSVersionConstraints không bắt buộc
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.
-
đã kết nối
boolean
Cờ cho biết liệu ổ cắm có được kết nối với một thiết bị ngang hàng từ xa hay không.
-
localAddress
chuỗi không bắt buộc
Nếu ổ cắm cơ bản được kết nối, 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 kết nối, 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 một ổ cắm đã kết nối có chặn thiết bị ngang hàng gửi thêm dữ liệu hay không (xem
setPaused
). -
peerAddress
chuỗi không bắt buộc
Nếu ổ cắm cơ bản được kết nối, hãy chứa địa chỉ ngang hàng/ IPv4/6.
-
peerPort
number không bắt buộc
Nếu ổ cắm cơ bản được kết nối, hãy chứa cổng ngang hà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. 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
.
TLSVersionConstraints
Thuộc tính
-
tối đa
chuỗi không bắt buộc
-
phút
chuỗi không bắt buộc
Phiên bản TLS tối thiểu và tối đa được chấp nhận. Giá trị được hỗ trợ là
tls1.2
hoặctls1.3
.Giá trị
tls1
vàtls1.1
không còn được hỗ trợ nữa. Nếumin
được đặt thành một trong các giá trị này, thì giá trị đó sẽ được tự động giới hạn ởtls1.2
. Nếu bạn đặtmax
thành một trong các giá trị đó hoặc bất kỳ giá trị không nhận dạng được nào khác, thì giá trị đó sẽ bị bỏ qua một cách âm thầm.
Phương thức
close()
chrome.sockets.tcp.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ố
Giá trị 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ênCá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.
connect()
chrome.sockets.tcp.connect(
socketId: number,
peerAddress: string,
peerPort: number,
dnsQueryType?: DnsQueryType,
callback: function,
): void
Kết nối ổ cắm với một máy từ xa. Khi thao tác connect
hoàn tất thành công, các sự kiện onReceive
sẽ được tạo khi dữ liệu được nhận từ thiết bị ngang hàng. Nếu xảy ra lỗi mạng trong khi thời gian chạy đang nhận các gói, thì sự kiện onReceiveError
sẽ được tạo. Tại thời điểm đó, sẽ không có sự kiện onReceive
nào khác được tạo cho ổ cắm này cho đến khi phương thức resume
được gọi.
Thông số
-
socketId
số
Giá trị nhận dạng ổ cắm.
-
peerAddress
chuỗi
Địa chỉ của máy từ xa. Hỗ trợ định dạng tên DNS, IPv4 và IPv6.
-
peerPort
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ố
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.
-
create()
chrome.sockets.tcp.create(
properties?: SocketProperties,
callback?: function,
): Promise<CreateInfo>
Tạo một socket TCP.
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ênCá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.
disconnect()
chrome.sockets.tcp.disconnect(
socketId: number,
callback?: function,
): Promise<void>
Ngắt kết nối ổ cắm.
Thông số
-
socketId
số
Giá trị 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ênCá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()
chrome.sockets.tcp.getInfo(
socketId: number,
callback?: function,
): Promise<SocketInfo>
Truy xuất trạng thái của ổ cắm đã cho.
Thông số
-
socketId
số
Giá trị 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ênCá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()
chrome.sockets.tcp.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ênCá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.
secure()
chrome.sockets.tcp.secure(
socketId: number,
options?: SecureOptions,
callback: function,
): void
Bắt đầu kết nối ứng dụng TLS qua ổ cắm ứng dụng TCP đã kết nối.
Thông số
-
socketId
số
Ổ cắm hiện có đã kết nối để sử dụng.
-
tùy chọn
SecureOptions không bắt buộc
Các ràng buộc và thông số cho kết nối TLS.
-
callback
hàm
Tham số
callback
có dạng như sau:(result: number) => void
-
kết quả
số
-
send()
chrome.sockets.tcp.send(
socketId: number,
data: ArrayBuffer,
callback: function,
): void
Gửi dữ liệu trên ổ cắm TCP đã cho.
Thông số
-
socketId
số
Giá trị nhận dạng ổ cắm.
-
khác
ArrayBuffer
Dữ liệu cần gửi.
-
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
.
-
setKeepAlive()
chrome.sockets.tcp.setKeepAlive(
socketId: number,
enable: boolean,
delay?: number,
callback: function,
): void
Bật hoặc tắt chức năng duy trì kết nối cho một kết nối TCP.
Thông số
-
socketId
số
Giá trị nhận dạng ổ cắm.
-
bật
boolean
Nếu đúng, hãy bật chức năng duy trì kết nối.
-
trì hoãn
number không bắt buộc
Đặt số giây trễ giữa gói dữ liệu cuối cùng nhận được và lần thăm dò đầu tiên để duy trì hoạt động. Giá trị mặc định là 0.
-
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.
-
setNoDelay()
chrome.sockets.tcp.setNoDelay(
socketId: number,
noDelay: boolean,
callback: function,
): void
Đặt hoặc xoá TCP_NODELAY
cho một kết nối TCP. Thuật toán Nagle sẽ bị vô hiệu hoá khi bạn đặt TCP_NODELAY
.
Thông số
-
socketId
số
Giá trị nhận dạng ổ cắm.
-
noDelay
boolean
Nếu đúng, thuật toán Nagle sẽ bị vô hiệu hoá.
-
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()
chrome.sockets.tcp.setPaused(
socketId: number,
paused: boolean,
callback?: function,
): Promise<void>
Cho phép hoặc không cho phép ứng dụng nhận thông báo từ ứng dụng ngang hàng. Giá trị mặc định là "false". Việc tạm dừng một socket thường được ứng dụng dùng để điều tiết dữ liệu do ứng dụng ngang hàng gửi. Khi một ổ cắm bị tạm dừng, sẽ không có sự kiện onReceive
nào được tạo. Khi một ổ cắm được kết nối và không bị tạm dừng, các sự kiện onReceive
sẽ được kích hoạt lại khi nhận được tin nhắn.
Thông số
-
socketId
số
-
tạm dừng
boolean
-
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ênCá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()
chrome.sockets.tcp.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ố
Giá trị 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ênCá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.tcp.onReceive.addListener(
callback: function,
)
Sự kiện được tạo khi dữ liệu đã được nhận cho một ổ cắm nhất định.
Thông số
-
callback
hàm
Tham số
callback
có dạng như sau:(info: ReceiveInfo) => void
-
info
-
onReceiveError
chrome.sockets.tcp.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ẽ được đặt thành paused
và không có sự kiện onReceive
nào khác được tạo cho ổ cắm này.
Thông số
-
callback
hàm
Tham số
callback
có dạng như sau:(info: ReceiveErrorInfo) => void
-
info
-