Mô tả
Sử dụng API chrome.socket
để gửi và nhận dữ liệu qua mạng bằng các kết nối TCP và UDP. Lưu ý: Kể từ Chrome 33, API này không còn đượ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
số không bắt buộc
Mã của ổ cắm đã 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 hiện có.
-
tên
chuỗi
Tên cơ bản của bộ chuyển đổi. Trên *nix, thông thường, đây sẽ 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ơ sở có được kết nối hay không.
Đối với ổ cắm
tcp
, điều này sẽ vẫn đúng ngay cả khi máy tính 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 biết rằng ổ cắm này sẽ bị ngắt kết nối thông quadisconnect()
.Đối với ổ cắm
udp
, giá trị này chỉ cho biết liệu địa chỉ từ xa mặc định đã được chỉ định để đọc và ghi 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, 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 hoặc kết nối, hãy 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, chứa địa chỉ IPv4/6 của máy ngang hàng.
-
peerPort
số 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 máy ngang hàng đã kết nối.
-
socketType
Loại ổ cắm đã truyền. Đó 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
.Các giá trị
tls1
vàtls1.1
không còn được hỗ trợ nữa. Nếu bạn đặtmin
thành một trong các giá trị này, thì giá trị đó sẽ được tự động cố định thànhtls1.2
. Nếumax
được đặt thành một trong các giá trị đó hoặc bất kỳ giá trị nào khác không được nhận dạng, thì giá trị đó sẽ bị bỏ qua.
WriteInfo
Thuộc tính
-
bytesWritten
số
Số byte đã gửi hoặc mã lỗi âm.
Phương thức
accept()
chrome.socket.accept(
socketId: number,
callback: function,
)
Phương thức này chỉ áp dụng cho các ổ cắm TCP. Đăng ký một hàm gọi lại để được gọi khi một kết nối được chấp nhận trên ổ cắm máy chủ nghe này. Trước tiên, bạn phải gọi Listen. Nếu đã có 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 lỗi là 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,
)
Liên kết địa chỉ cục bộ cho ổ cắm. Hiện tại, API này không hỗ trợ ổ cắm 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,
)
Kết nối ổ cắm với máy từ xa (đối với ổ cắm tcp
). Đối với ổ cắm udp
, thao tác 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,
)
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 tuỳ chọn ổ 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ê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.
destroy()
chrome.socket.destroy(
socketId: number,
)
Huỷ bỏ ổ 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,
)
Ngắt kết nối ổ cắm. Đối với ổ cắm UDP, disconnect
là một thao tác không hoạt động nhưng an toàn khi gọi.
Thông số
-
socketId
số
socketId.
getInfo()
chrome.socket.getInfo(
socketId: number,
callback?: function,
)
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ê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.socket.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ố
socketId.
-
callback
hàm
Tham số
callback
có dạng như sau:(groups: string[]) => void
-
nhóm
string[]
-
getNetworkList()
chrome.socket.getNetworkList(
callback?: function,
)
Truy xuất thông tin về 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ê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.socket.joinGroup(
socketId: number,
address: string,
callback: function,
)
Tham gia nhóm multicast và bắt đầu nhận gói từ nhóm đó. Socket 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 để 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,
)
Rời khỏi nhóm multicast đã tham gia trước đó bằng joinGroup
. Bạn không cần phải rời khỏi nhóm multicast trước khi huỷ bỏ ổ 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 đ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ố
socketId.
-
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ợ.
-
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,
)
Phương thức này chỉ áp dụng cho các ổ cắm TCP. Theo dõi các kết nối trên cổng và địa chỉ đã chỉ định. Điều này giúp biến ổ cắm này thành ổ cắm máy chủ và các hàm ổ cắm máy khách (kết nối, đọc, ghi) không thể sử dụng được trên ổ cắm 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ộ.
-
danh sách công việc tồn đọng
số 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,
)
Đọc dữ liệu từ ổ cắm đã kết nối nhất định.
Thông số
-
socketId
số
socketId.
-
bufferSize
số 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,
)
Nhận dữ liệu từ ổ cắm UDP đã cho.
Thông số
-
socketId
số
socketId.
-
bufferSize
số 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,
)
Bắt đầu kết nối máy khách TLS qua ổ 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 quy tắ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,
)
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,
)
Bật hoặc tắt chức năng duy trì kết nối cho 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
số không bắt buộc
Đặt số giây trễ giữa gói dữ liệu cuối cùng được nhận và lần thăm dò keepalive đầu tiên. 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,
)
Đặt xem các gói truyền đa điểm được gửi từ máy chủ đến nhóm truyền đa điểm 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: https://learn.microsoft.com/en-us/windows/win32/winsock/ip-multicast-2
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ố
socketId.
-
đang bật
boolean
Cho biết có bật chế độ 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,
)
Đặ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ố
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,
)
Đặt hoặc xoá TCP_NODELAY
cho một kết nối TCP. Thuật toán Nagle sẽ bị tắt khi bạn đặt TCP_NODELAY
.
Thông số
-
socketId
số
socketId.
-
noDelay
boolean
Nếu là true, sẽ tắt thuật toán Nagle.
-
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,
)
Ghi dữ liệu trên ổ cắm đã kết nối nhất định.