Mô tả
Sử dụng API chrome.socket
để gửi và nhận dữ liệu qua mạng bằng cách sử dụng các kết nối TCP và UDP. Lưu ý: Kể từ Chrome 33, API này không được dùng nữa mà thay vào đó là các API sockets.udp
, sockets.tcp
và sockets.tcpServer
.
Quyền
socket
Loại
AcceptInfo
Thuộc tính
-
resultCode
số
-
socketId
number không bắt buộc
Mã nhận dạng của ổ cắm được chấp nhận.
CreateInfo
Thuộc tính
-
socketId
số
Mã nhận dạng của ổ cắm mới tạo.
CreateOptions
NetworkInterface
Thuộc tính
-
xử lý
chuỗi
Địa chỉ IPv4/6 có sẵn.
-
tên
chuỗi
Tên cơ bản của bộ chuyển đổi. Trên *nix, tên này thường là "eth0", "lo", v.v.
-
prefixLength
số
Độ dài tiền tố
ReadInfo
Thuộc tính
-
khác
ArrayBuffer
-
resultCode
số
ResultCode được trả về từ lệnh gọi read() cơ bản.
RecvFromInfo
Thuộc tính
-
xử lý
chuỗi
Địa chỉ của máy từ xa.
-
khác
ArrayBuffer
-
cổng
số
-
resultCode
số
ResultCode được trả về từ lệnh gọi recvfrom() cơ bản.
SecureOptions
Thuộc tính
-
tlsVersion
TLSVersionConstraints không bắt buộc
SocketInfo
Thuộc tính
-
đã kết nối
boolean
Liệu ổ cắm cơ bản có được kết nối hay không.
Đối với các ổ cắm
tcp
, điều này vẫn đúng ngay cả khi thiết bị ngang hàng từ xa đã ngắt kết nối. Sau đó, việc đọc hoặc ghi vào ổ cắm có thể dẫn đến lỗi, cho thấy rằng ổ cắm này phải được ngắt kết nối thông quadisconnect()
.Đối với các ổ cắm
udp
, điều này chỉ thể hiện việc địa chỉ từ xa mặc định đã được chỉ định để đọc và ghi các gói hay chưa. -
localAddress
chuỗi không bắt buộc
Nếu ổ cắm cơ bản được liên kết hoặc kết nối, thì sẽ 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 hoặc kết nối, thì sẽ chứa cổng cục bộ của ổ cắm đó.
-
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ỉ IPv4/6 của thiết bị ngang hàng.
-
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 của thiết bị ngang hàng được kết nối.
-
socketType
Loại ổ cắm đã truyền. Đây sẽ là
tcp
hoặcudp
.
SocketType
Enum
"tcp"
"udp"
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.
WriteInfo
Thuộc tính
-
bytesWritten
số
Số lượng byte đã gửi hoặc mã lỗi âm.
Phương thức
accept()
chrome.socket.accept(
socketId: number,
callback: function,
): void
Phương thức này chỉ áp dụng cho các socket TCP. Đăng ký một hàm gọi lại sẽ được gọi khi một kết nối được chấp nhận trên ổ cắm máy chủ đang nghe này. Trước tiên, bạn phải gọi Listen. Nếu đã có một lệnh gọi lại chấp nhận đang hoạt động, lệnh gọi lại này sẽ được gọi ngay lập tức với một lỗi làm resultCode.
Thông số
-
socketId
số
socketId.
-
callback
hàm
Tham số
callback
có dạng như sau:(acceptInfo: AcceptInfo) => void
-
acceptInfo
-
bind()
chrome.socket.bind(
socketId: number,
address: string,
port: number,
callback: function,
): void
Liên kết địa chỉ cục bộ cho ổ cắm. Hiện tại, tính năng này không hỗ trợ socket TCP.
Thông số
-
socketId
số
socketId.
-
xử lý
chuỗi
Địa chỉ của máy cục bộ.
-
cổng
số
Cổng của máy cục bộ.
-
callback
hàm
Tham số
callback
có dạng như sau:(result: number) => void
-
kết quả
số
-
connect()
chrome.socket.connect(
socketId: number,
hostname: string,
port: number,
callback: function,
): void
Kết nối ổ cắm với máy từ xa (đối với ổ cắm tcp
). Đối với một socket udp
, lệnh này sẽ đặt địa chỉ mặc định mà các gói được gửi đến và đọc từ các lệnh gọi read()
và write()
.
Thông số
-
socketId
số
socketId.
-
hostname
chuỗi
Tên máy chủ hoặc địa chỉ IP của máy từ xa.
-
cổng
số
Cổng của máy từ xa.
-
callback
hàm
Tham số
callback
có dạng như sau:(result: number) => void
-
kết quả
số
-
create()
chrome.socket.create(
type: SocketType,
options?: CreateOptions,
callback?: function,
): Promise<CreateInfo>
Tạo một ổ cắm thuộc loại đã chỉ định sẽ kết nối với máy từ xa đã chỉ định.
Thông số
-
loại
Loại ổ cắm cần tạo. Phải là
tcp
hoặcudp
. -
tùy chọn
CreateOptions không bắt buộc
Các lựa chọn về ổ cắm.
-
callback
hàm không bắt buộc
Tham số
callback
có dạng như sau:(createInfo: CreateInfo) => void
-
createInfo
-
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.
destroy()
chrome.socket.destroy(
socketId: number,
): void
Huỷ ổ cắm. Mỗi ổ cắm được tạo phải bị huỷ sau khi sử dụng.
Thông số
-
socketId
số
socketId.
disconnect()
chrome.socket.disconnect(
socketId: number,
): void
Ngắt kết nối ổ cắm. Đối với các socket UDP, disconnect
không phải là một thao tác nhưng an toàn khi gọi.
Thông số
-
socketId
số
socketId.
getInfo()
chrome.socket.getInfo(
socketId: number,
callback?: function,
): Promise<SocketInfo>
Truy xuất trạng thái của ổ cắm đã cho.
Thông số
-
socketId
số
socketId.
-
callback
hàm không bắt buộc
Tham số
callback
có dạng như sau:(result: SocketInfo) => void
-
kết quả
-
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.
getJoinedGroups()
chrome.socket.getJoinedGroups(
socketId: number,
callback: function,
): void
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ố
socketId.
-
callback
hàm
Tham số
callback
có dạng như sau:(groups: string[]) => void
-
nhóm
string[]
-
getNetworkList()
chrome.socket.getNetworkList(
callback?: function,
): Promise<NetworkInterface[]>
Truy xuất thông tin về các bộ chuyển đổi cục bộ trên hệ thống này.
Thông số
-
callback
hàm không bắt buộc
Tham số
callback
có dạng như sau:(result: NetworkInterface[]) => void
-
kết quả
-
Giá trị trả về
-
Promise<NetworkInterface[]>
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.
joinGroup()
chrome.socket.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 đó. Ổ cắm phải thuộc loại UDP và 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ố
socketId.
-
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ố
-
leaveGroup()
chrome.socket.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 không cần rời khỏi nhóm truyền tin đa hướng trước khi huỷ ổ cắm hoặc thoát. Hệ điều hành sẽ tự động gọi phương thức này.
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ố
socketId.
-
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ố
-
listen()
chrome.socket.listen(
socketId: number,
address: string,
port: number,
backlog?: number,
callback: function,
): void
Phương thức này chỉ áp dụng cho các socket TCP. Theo dõi các kết nối trên cổng và địa chỉ được chỉ định. Điều này khiến socket này trở thành một socket máy chủ và các hàm socket máy khách (kết nối, đọc, ghi) không còn được dùng trên socket này nữa.
Thông số
-
socketId
số
socketId.
-
xử lý
chuỗi
Địa chỉ của máy cục bộ.
-
cổng
số
Cổng của máy cục bộ.
-
backlog
number không bắt buộc
Độ dài của hàng đợi nghe của ổ cắm.
-
callback
hàm
Tham số
callback
có dạng như sau:(result: number) => void
-
kết quả
số
-
read()
chrome.socket.read(
socketId: number,
bufferSize?: number,
callback: function,
): void
Đọc dữ liệu từ ổ cắm đã kết nối cho trước.
Thông số
-
socketId
số
socketId.
-
bufferSize
number không bắt buộc
Dung lượng bộ nhớ đệm đọc.
-
callback
hàm
Tham số
callback
có dạng như sau:(readInfo: ReadInfo) => void
-
readInfo
-
recvFrom()
chrome.socket.recvFrom(
socketId: number,
bufferSize?: number,
callback: function,
): void
Nhận dữ liệu từ socket UDP đã cho.
Thông số
-
socketId
số
socketId.
-
bufferSize
number không bắt buộc
Dung lượng bộ nhớ đệm nhận.
-
callback
hàm
Tham số
callback
có dạng như sau:(recvFromInfo: RecvFromInfo) => void
-
recvFromInfo
-
secure()
chrome.socket.secure(
socketId: number,
options?: SecureOptions,
callback: function,
): void
Bắt đầu kết nối máy khách TLS qua một ổ cắm máy khách TCP đã kết nối.
Thông số
-
socketId
số
Ổ cắm đã 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ố
-
sendTo()
chrome.socket.sendTo(
socketId: number,
data: ArrayBuffer,
address: string,
port: number,
callback: function,
): void
Gửi dữ liệu trên ổ cắm UDP đã cho đến địa chỉ và cổng đã cho.
Thông số
-
socketId
số
socketId.
-
khác
ArrayBuffer
Dữ liệu cần ghi.
-
xử lý
chuỗi
Địa chỉ của máy từ xa.
-
cổng
số
Cổng của máy từ xa.
-
callback
hàm
Tham số
callback
có dạng như sau:(writeInfo: WriteInfo) => void
-
writeInfo
-
setKeepAlive()
chrome.socket.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ố
socketId.
-
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: boolean) => void
-
kết quả
boolean
-
setMulticastLoopbackMode()
chrome.socket.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 có đượ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ố
socketId.
-
đ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ố
-
setMulticastTimeToLive()
chrome.socket.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ố
socketId.
-
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ố
-
setNoDelay()
chrome.socket.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ố
socketId.
-
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: boolean) => void
-
kết quả
boolean
-
write()
chrome.socket.write(
socketId: number,
data: ArrayBuffer,
callback: function,
): void
Ghi dữ liệu vào ổ cắm đã kết nối cho trước.