Opis
Używaj interfejsu chrome.socket
API do wysyłania i odbierania danych przez sieć za pomocą połączeń TCP i UDP. Uwaga: od Chrome 33 ten interfejs API jest wycofywany na rzecz interfejsów sockets.udp
, sockets.tcp
i sockets.tcpServer
.
Uprawnienia
socket
Typy
AcceptInfo
Właściwości
-
resultCode
liczba
-
socketId
number opcjonalny
Identyfikator zaakceptowanego gniazda.
CreateInfo
Właściwości
-
socketId
liczba
Identyfikator nowo utworzonego gniazda.
CreateOptions
NetworkInterface
Właściwości
-
adres
ciąg znaków
Dostępny adres IPv4/6.
-
nazwa
ciąg znaków
Nazwa bazowa karty. W systemach *nix będzie to zwykle „eth0”, „lo” itp.
-
prefixLength
liczba
długość prefiksu,
ReadInfo
Właściwości
-
dane
ArrayBuffer
-
resultCode
liczba
Kod resultCode zwrócony z wywołania read().
RecvFromInfo
Właściwości
-
adres
ciąg znaków
Adres zdalnego urządzenia.
-
dane
ArrayBuffer
-
port
liczba
-
resultCode
liczba
Kod resultCode zwrócony z wywołania recvfrom().
SecureOptions
Właściwości
-
tlsVersion
TLSVersionConstraints opcjonalne
SocketInfo
Właściwości
-
Podłączono
Wartość logiczna
Informacja, czy gniazdo bazowe jest połączone.
W przypadku gniazd
tcp
pozostanie to prawdą nawet wtedy, gdy zdalny węzeł zostanie odłączony. Odczyt lub zapis w gnieździe może spowodować błąd, co oznacza, że to gniazdo należy odłączyć za pomocą funkcjidisconnect()
.W przypadku gniazd
udp
oznacza to tylko, czy określono domyślny adres zdalny do odczytywania i zapisywania pakietów. -
localAddress
string opcjonalny
Jeśli gniazdo bazowe jest powiązane lub połączone, zawiera lokalny adres IPv4/6.
-
localPort
number opcjonalny
Jeśli gniazdo bazowe jest powiązane lub połączone, zawiera swój port lokalny.
-
peerAddress
string opcjonalny
Jeśli gniazdo bazowe jest połączone, zawiera adres IPv4/6 peera.
-
peerPort
number opcjonalny
Jeśli gniazdo bazowe jest połączone, zawiera port połączonego urządzenia.
-
socketType
Typ przekazanego gniazda. Będzie to
tcp
lubudp
.
SocketType
Typ wyliczeniowy
„tcp”
"udp"
TLSVersionConstraints
Właściwości
-
maksimum
string opcjonalny
-
min
string opcjonalny
Minimalna i maksymalna akceptowalna wersja TLS. Obsługiwane wartości to
tls1.2
lubtls1.3
.Wartości
tls1
itls1.1
nie są już obsługiwane. Jeśli parametrmin
ma jedną z tych wartości, zostanie on automatycznie ograniczony do wartościtls1.2
. Jeśli parametrmax
ma jedną z tych wartości lub inną nierozpoznaną wartość, zostanie zignorowany.
WriteInfo
Właściwości
-
bytesWritten
liczba
Liczba wysłanych bajtów lub ujemny kod błędu.
Metody
accept()
chrome.socket.accept(
socketId: number,
callback: function,
): void
Ta metoda dotyczy tylko gniazd TCP. Rejestruje funkcję wywołania zwrotnego, która ma być wywoływana, gdy połączenie zostanie zaakceptowane na tym gnieździe serwera nasłuchującego. Najpierw musi zostać wywołana funkcja Listen. Jeśli istnieje już aktywny wywołanie zwrotne akceptacji, zostanie ono natychmiast wywołane z błędem jako resultCode.
Parametry
-
socketId
liczba
Identyfikator gniazda.
-
callback
funkcja
Parametr
callback
wygląda tak:(acceptInfo: AcceptInfo) => void
-
acceptInfo
-
bind()
chrome.socket.bind(
socketId: number,
address: string,
port: number,
callback: function,
): void
Wiązanie adresu lokalnego z gniazdem. Obecnie nie obsługuje gniazda TCP.
Parametry
-
socketId
liczba
Identyfikator gniazda.
-
adres
ciąg znaków
Adres urządzenia lokalnego.
-
port
liczba
Port komputera lokalnego.
-
callback
funkcja
Parametr
callback
wygląda tak:(result: number) => void
-
wynik
liczba
-
connect()
chrome.socket.connect(
socketId: number,
hostname: string,
port: number,
callback: function,
): void
Łączy gniazdo ze zdalną maszyną (w przypadku gniazda tcp
). W przypadku gniazda udp
ustawia domyślny adres, na który są wysyłane pakiety i z którego są odczytywane w wywołaniach read()
i write()
.
Parametry
-
socketId
liczba
Identyfikator gniazda.
-
nazwa hosta
ciąg znaków
Nazwa hosta lub adres IP zdalnego komputera.
-
port
liczba
Port komputera zdalnego.
-
callback
funkcja
Parametr
callback
wygląda tak:(result: number) => void
-
wynik
liczba
-
create()
chrome.socket.create(
type: SocketType,
options?: CreateOptions,
callback?: function,
): Promise<CreateInfo>
Tworzy gniazdo określonego typu, które będzie łączyć się z określonym komputerem zdalnym.
Parametry
-
typ
Typ gniazda do utworzenia. Musi to być
tcp
lubudp
. -
Opcje
CreateOptions opcjonalny
Opcje gniazda.
-
callback
funkcja opcjonalna
Parametr
callback
wygląda tak:(createInfo: CreateInfo) => void
-
createInfo
-
Zwroty
-
Promise<CreateInfo>
Chrome 121 lub nowszaObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.
destroy()
chrome.socket.destroy(
socketId: number,
): void
Niszczy gniazdo. Każde utworzone gniazdo powinno zostać zniszczone po użyciu.
Parametry
-
socketId
liczba
Identyfikator gniazda.
disconnect()
chrome.socket.disconnect(
socketId: number,
): void
Odłącza gniazdo. W przypadku gniazd UDP funkcja disconnect
nie wykonuje żadnej operacji, ale można ją bezpiecznie wywołać.
Parametry
-
socketId
liczba
Identyfikator gniazda.
getInfo()
chrome.socket.getInfo(
socketId: number,
callback?: function,
): Promise<SocketInfo>
Pobiera stan danego gniazda.
Parametry
-
socketId
liczba
Identyfikator gniazda.
-
callback
funkcja opcjonalna
Parametr
callback
wygląda tak:(result: SocketInfo) => void
-
wynik
-
Zwroty
-
Promise<SocketInfo>
Chrome 121 lub nowszaObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.
getJoinedGroups()
chrome.socket.getJoinedGroups(
socketId: number,
callback: function,
): void
Pobierz adresy grup multiemisji, do których gniazdo jest obecnie przyłączone.
Parametry
-
socketId
liczba
Identyfikator gniazda.
-
callback
funkcja
Parametr
callback
wygląda tak:(groups: string[]) => void
-
grupy
string[]
-
getNetworkList()
chrome.socket.getNetworkList(
callback?: function,
): Promise<NetworkInterface[]>
Pobiera informacje o lokalnych kartach sieciowych w tym systemie.
Parametry
-
callback
funkcja opcjonalna
Parametr
callback
wygląda tak:(result: NetworkInterface[]) => void
-
wynik
-
Zwroty
-
Promise<NetworkInterface[]>
Chrome 121 lub nowszaObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.
joinGroup()
chrome.socket.joinGroup(
socketId: number,
address: string,
callback: function,
): void
Dołącz do grupy multiemisji i zacznij odbierać pakiety z tej grupy. Gniazdo musi być typu UDP i musi być powiązane z lokalnym portem przed wywołaniem tej metody.
Parametry
-
socketId
liczba
Identyfikator gniazda.
-
adres
ciąg znaków
Adres grupy, do której chcesz dołączyć. Nazwy domen nie są obsługiwane.
-
callback
funkcja
Parametr
callback
wygląda tak:(result: number) => void
-
wynik
liczba
-
leaveGroup()
chrome.socket.leaveGroup(
socketId: number,
address: string,
callback: function,
): void
Opuść grupę multiemisji, do której wcześniej dołączono za pomocą joinGroup
. Nie musisz opuszczać grupy multiemisji przed zniszczeniem gniazda lub zakończeniem działania. Jest ona wywoływana automatycznie przez system operacyjny.
Opuszczenie grupy uniemożliwi routerowi wysyłanie datagramów multicast do hosta lokalnego, pod warunkiem że żaden inny proces na hoście nie jest nadal dołączony do grupy.
Parametry
-
socketId
liczba
Identyfikator gniazda.
-
adres
ciąg znaków
Adres grupy, którą chcesz opuścić. Nazwy domen nie są obsługiwane.
-
callback
funkcja
Parametr
callback
wygląda tak:(result: number) => void
-
wynik
liczba
-
listen()
chrome.socket.listen(
socketId: number,
address: string,
port: number,
backlog?: number,
callback: function,
): void
Ta metoda dotyczy tylko gniazd TCP. Nasłuchuje połączeń na określonym porcie i adresie. W ten sposób staje się on gniazdem serwera, a funkcje gniazda klienta (connect, read, write) nie mogą być już używane w tym gnieździe.
Parametry
-
socketId
liczba
Identyfikator gniazda.
-
adres
ciąg znaków
Adres urządzenia lokalnego.
-
port
liczba
Port komputera lokalnego.
-
backlog
number opcjonalny
Długość kolejki nasłuchiwania gniazda.
-
callback
funkcja
Parametr
callback
wygląda tak:(result: number) => void
-
wynik
liczba
-
read()
chrome.socket.read(
socketId: number,
bufferSize?: number,
callback: function,
): void
Odczytuje dane z danego połączonego gniazda.
Parametry
-
socketId
liczba
Identyfikator gniazda.
-
bufferSize
number opcjonalny
Rozmiar bufora odczytu.
-
callback
funkcja
Parametr
callback
wygląda tak:(readInfo: ReadInfo) => void
-
readInfo
-
recvFrom()
chrome.socket.recvFrom(
socketId: number,
bufferSize?: number,
callback: function,
): void
Odbiera dane z danego gniazda UDP.
Parametry
-
socketId
liczba
Identyfikator gniazda.
-
bufferSize
number opcjonalny
Rozmiar bufora odbioru.
-
callback
funkcja
Parametr
callback
wygląda tak:(recvFromInfo: RecvFromInfo) => void
-
recvFromInfo
-
secure()
chrome.socket.secure(
socketId: number,
options?: SecureOptions,
callback: function,
): void
Uruchom połączenie klienta TLS przez połączone gniazdo klienta TCP.
Parametry
-
socketId
liczba
Gniazdo, którego chcesz użyć.
-
Opcje
SecureOptions opcjonalny
Ograniczenia i parametry połączenia TLS.
-
callback
funkcja
Parametr
callback
wygląda tak:(result: number) => void
-
wynik
liczba
-
sendTo()
chrome.socket.sendTo(
socketId: number,
data: ArrayBuffer,
address: string,
port: number,
callback: function,
): void
Wysyła dane z danego gniazda UDP na podany adres i port.
Parametry
-
socketId
liczba
Identyfikator gniazda.
-
dane
ArrayBuffer
Dane do zapisania.
-
adres
ciąg znaków
Adres zdalnego urządzenia.
-
port
liczba
Port komputera zdalnego.
-
callback
funkcja
Parametr
callback
wygląda tak:(writeInfo: WriteInfo) => void
-
writeInfo
-
setKeepAlive()
chrome.socket.setKeepAlive(
socketId: number,
enable: boolean,
delay?: number,
callback: function,
): void
Włącza lub wyłącza funkcję keep-alive dla połączenia TCP.
Parametry
-
socketId
liczba
Identyfikator gniazda.
-
włącz
Wartość logiczna
Jeśli wartość to „true”, włącz funkcję keep-alive.
-
opóźnienia
number opcjonalny
Ustaw liczbę sekund opóźnienia między ostatnim odebranym pakietem danych a pierwszą sondą keepalive. Wartość domyślna to 0.
-
callback
funkcja
Parametr
callback
wygląda tak:(result: boolean) => void
-
wynik
Wartość logiczna
-
setMulticastLoopbackMode()
chrome.socket.setMulticastLoopbackMode(
socketId: number,
enabled: boolean,
callback: function,
): void
Określa, czy pakiety multiemisji wysyłane z hosta do grupy multiemisji będą zwracane do hosta.
Uwaga: działanie znaku setMulticastLoopbackMode
nieco różni się w systemach Windows i Unix. Niespójność występuje tylko wtedy, gdy na tym samym hoście jest więcej niż 1 aplikacja należąca do tej samej grupy multiemisji, a ustawienia trybu pętli zwrotnej multiemisji są różne. W systemie Windows aplikacje z wyłączoną pętlą zwrotną nie BĘDĄ OTRZYMYWAĆ pakietów pętli zwrotnej, a w systemach uniksopodobnych aplikacje z wyłączoną pętlą zwrotną nie BĘDĄ WYSYŁAĆ pakietów pętli zwrotnej do innych aplikacji na tym samym hoście. Więcej informacji znajdziesz w MSDN: https://learn.microsoft.com/en-us/windows/win32/winsock/ip-multicast-2
Wywołanie tej metody nie wymaga uprawnień do multiemisji.
Parametry
-
socketId
liczba
Identyfikator gniazda.
-
włączone
Wartość logiczna
Określ, czy chcesz włączyć tryb pętli zwrotnej.
-
callback
funkcja
Parametr
callback
wygląda tak:(result: number) => void
-
wynik
liczba
-
setMulticastTimeToLive()
chrome.socket.setMulticastTimeToLive(
socketId: number,
ttl: number,
callback: function,
): void
Ustaw czas życia pakietów multicast wysyłanych do grupy multicast.
Wywołanie tej metody nie wymaga uprawnień do multiemisji.
Parametry
-
socketId
liczba
Identyfikator gniazda.
-
ttl
liczba
Wartość czasu życia.
-
callback
funkcja
Parametr
callback
wygląda tak:(result: number) => void
-
wynik
liczba
-
setNoDelay()
chrome.socket.setNoDelay(
socketId: number,
noDelay: boolean,
callback: function,
): void
Ustawia lub usuwa TCP_NODELAY
dla połączenia TCP. Algorytm Nagle'a zostanie wyłączony, gdy ustawiona jest wartość TCP_NODELAY
.
Parametry
-
socketId
liczba
Identyfikator gniazda.
-
noDelay
Wartość logiczna
Jeśli ma wartość true, algorytm Nagle'a jest wyłączony.
-
callback
funkcja
Parametr
callback
wygląda tak:(result: boolean) => void
-
wynik
Wartość logiczna
-
write()
chrome.socket.write(
socketId: number,
data: ArrayBuffer,
callback: function,
): void
Zapisuje dane na podanym połączonym gnieździe.