chrome.socket

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.tcpsockets.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

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ą funkcji disconnect().

    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 lub udp.

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 lub tls1.3.

    Wartości tls1tls1.1 nie są już obsługiwane. Jeśli parametr min ma jedną z tych wartości, zostanie on automatycznie ograniczony do wartości tls1.2. Jeśli parametr max 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

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()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()

Obietnica
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 gniazda do utworzenia. Musi to być tcp lub udp.

  • Opcje

    CreateOptions opcjonalny

    Opcje gniazda.

  • callback

    funkcja opcjonalna

    Parametr callback wygląda tak:

    (createInfo: CreateInfo) => void

Zwroty

  • Promise<CreateInfo>

    Chrome 121 lub nowsza

    Obietnice 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()

Obietnica
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

Zwroty

  • Promise<SocketInfo>

    Chrome 121 lub nowsza

    Obietnice 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()

Obietnica
chrome.socket.getNetworkList(
  callback?: function,
)
: Promise<NetworkInterface[]>

Pobiera informacje o lokalnych kartach sieciowych w tym systemie.

Parametry

Zwroty

  • Promise<NetworkInterface[]>

    Chrome 121 lub nowsza

    Obietnice 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

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

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

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.

Parametry

  • socketId

    liczba

    Identyfikator gniazda.

  • dane

    ArrayBuffer

    Dane do zapisania.

  • callback

    funkcja

    Parametr callback wygląda tak:

    (writeInfo: WriteInfo) => void