chrome.socket

Opis

Używaj interfejsu API chrome.socket do wysyłania i odbierania danych przez sieć za pomocą połączeń TCP i UDP. Uwaga: od wersji Chrome 33 ten interfejs API jest wycofany na rzecz interfejsów API sockets.udp, sockets.tcp i sockets.tcpServer.

Uprawnienia

socket

Typy

AcceptInfo

Właściwości

  • resultCode

    liczba

  • socketId

    number optional

    Identyfikator zaakceptowanego gniazda.

CreateInfo

Właściwości

  • socketId

    liczba

    Identyfikator nowo utworzonego gniazda.

CreateOptions

NetworkInterface

Właściwości

  • adres

    tekst

    Dostępny adres IPv4/6.

  • nazwa

    tekst

    Nazwa 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

    Wartość resultCode zwrócona przez wywołanie read().

RecvFromInfo

Właściwości

  • adres

    tekst

    Adres komputera zdalnego.

  • dane

    ArrayBuffer

  • port

    liczba

  • resultCode

    liczba

    Kod wyniku zwrócony z wywołania recvfrom().

SecureOptions

Właściwości

SocketInfo

Właściwości

  • Połączono

    wartość logiczna

    Określa, czy bazowe gniazdo jest połączone.

    W przypadku gniazd tcp będzie to prawdą nawet wtedy, gdy zdalny węzeł zostanie rozłączony. Odczyt lub zapis w gnieździe może spowodować błąd, co oznacza, że gniazdo powinno zostać odłączone za pomocą disconnect().

    W przypadku gniazd udp oznacza to, czy określono domyślny adres zdalny do odczytu i zapisu pakietów.

  • localAddress

    ciąg znaków opcjonalny

    Jeśli powiązane gniazdo jest powiązane lub połączone, zawiera lokalny adres IPv4/6.

  • localPort

    number optional

    Jeśli gniazdo bazowe jest powiązane lub połączone, zawiera port lokalny.

  • peerAddress

    ciąg znaków opcjonalny

    Jeśli bazowe gniazdo jest połączone, zawiera adres IPv4/6 peera.

  • peerPort

    number optional

    Jeśli bazowe gniazdo jest połączone, zawiera port połączonego peera.

  • socketType

    Typ przekazanego gniazda. Będzie to tcp lub udp.

SocketType

Typ wyliczeniowy

"tcp"

"udp"

TLSVersionConstraints

Właściwości

  • maksimum

    ciąg znaków opcjonalny

  • min

    ciąg znaków opcjonalny

    Minimalna i maksymalna akceptowana wersja TLS. Obsługiwane wartości to tls1.2 lub tls1.3.

    Wartości tls1 i tls1.1 nie są już obsługiwane. Jeśli zasada min jest ustawiona na jedną z tych wartości, zostanie ona automatycznie zmieniona na tls1.2. Jeśli zasada max jest ustawiona na jedną z tych wartości lub inną nierozpoznaną wartość, zostanie ona zignorowana bez powiadomienia.

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 wywołanie zwrotne, które ma zostać wywołane, gdy połączenie zostanie zaakceptowane w tym gnieździe serwera nasłuchującego. Najpierw należy wywołać metodę Listen. Jeśli istnieje już aktywne 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ąże adres lokalny z gniazdem. Obecnie nie obsługuje gniazda TCP.

Parametry

  • socketId

    liczba

    Identyfikator gniazda.

  • adres

    tekst

    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 z maszyną zdalną (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 przypadku wywołań read() i write().

Parametry

  • socketId

    liczba

    Identyfikator gniazda.

  • nazwa hosta

    tekst

    Nazwa hosta lub adres IP komputera zdalnego.

  • 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 połączy się z określonym komputerem zdalnym.

Parametry

  • Typ gniazda, które ma zostać utworzone. Musi to być tcp lub udp.

  • Opcje

    CreateOptions opcjonalne

    Opcje gniazda.

  • callback

    function opcjonalne

    Parametr callback wygląda tak:

    (createInfo: CreateInfo) => void

Zwroty

  • Promise<CreateInfo>

    Chrome 121 lub nowsza wersja

    Obiekty Promise są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Na innych platformach należy 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

Rozłącza gniazdo. W przypadku gniazd UDP disconnect nie jest operacją, 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

    function opcjonalne

    Parametr callback wygląda tak:

    (result: SocketInfo) => void

Zwroty

  • Promise<SocketInfo>

    Chrome 121 lub nowsza wersja

    Obiekty Promise są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Na innych platformach należy używać wywołań zwrotnych.

getJoinedGroups()

chrome.socket.getJoinedGroups(
  socketId: number,
  callback: function,
)
: void

Pobiera adresy grup multicast, do których gniazdo jest obecnie dołą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 adapterach w tym systemie.

Parametry

Zwroty

  • Promise<NetworkInterface[]>

    Chrome 121 lub nowsza wersja

    Obiekty Promise są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Na innych platformach należy 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. Przed wywołaniem tej metody gniazdo musi być typu UDP i musi być powiązane z portem lokalnym.

Parametry

  • socketId

    liczba

    Identyfikator gniazda.

  • adres

    tekst

    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ę multicast, do której wcześniej dołączono za pomocą joinGroup. Nie trzeba opuszczać grupy multicast przed zniszczeniem gniazda lub wyjściem. Jest on automatycznie wywoływany przez system operacyjny.

Opuszczenie grupy uniemożliwi routerowi wysyłanie datagramów multicast do hosta lokalnego, zakładając, że żaden inny proces na hoście nie jest nadal połączony z grupą.

Parametry

  • socketId

    liczba

    Identyfikator gniazda.

  • adres

    tekst

    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 gniazdo staje się gniazdem serwera, a funkcje gniazda klienta (połączenie, odczyt, zapis) nie mogą już być na nim używane.

Parametry

  • socketId

    liczba

    Identyfikator gniazda.

  • adres

    tekst

    Adres urządzenia lokalnego.

  • port

    liczba

    Port komputera lokalnego.

  • zaległości

    number optional

    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 podanego połączonego gniazda.

Parametry

  • socketId

    liczba

    Identyfikator gniazda.

  • bufferSize

    number optional

    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 optional

    Rozmiar bufora odbioru.

  • callback

    funkcja

    Parametr callback wygląda tak:

    (recvFromInfo: RecvFromInfo) => void

secure()

chrome.socket.secure(
  socketId: number,
  options?: SecureOptions,
  callback: function,
)
: void

Nawiąż połączenie klienta TLS przez połączone gniazdo klienta TCP.

Parametry

  • socketId

    liczba

    Połączone 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 podanego gniazda UDP na podany adres i port.

Parametry

  • socketId

    liczba

    Identyfikator gniazda.

  • dane

    ArrayBuffer

    Dane do zapisania.

  • adres

    tekst

    Adres komputera zdalnego.

  • 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ę utrzymywania aktywności połączenia TCP.

Parametry

  • socketId

    liczba

    Identyfikator gniazda.

  • włącz

    wartość logiczna

    Jeśli ma wartość true, włącz funkcję utrzymywania połączenia.

  • opóźnienia

    number optional

    Ustaw opóźnienie w sekundach między ostatnim odebranym pakietem danych a pierwszą próbą utrzymania połączenia. 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śl, czy pakiety multicast wysyłane z hosta do grupy multicast będą zapętlane z powrotem do hosta.

Uwaga: działanie setMulticastLoopbackMode różni się nieco w systemach Windows i Unix. Niespójność występuje tylko wtedy, gdy na tym samym hoście jest więcej niż 1 aplikacja dołączona do tej samej grupy multicast, ale z różnymi ustawieniami trybu sprzężenia zwrotnego multicast. W systemie Windows aplikacje z wyłączonym sprzężeniem zwrotnym nie będą ODBIERAĆ pakietów sprzężenia zwrotnego, natomiast w systemach uniksopodobnych aplikacje z wyłączonym sprzężeniem zwrotnym nie będą WYSYŁAĆ pakietów sprzężenia zwrotnego do innych aplikacji na tym samym hoście. Zobacz 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.

  • aktywne

    wartość logiczna

    Wskaż, czy chcesz włączyć tryb sprzężenia zwrotnego.

  • 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. Gdy ustawiona jest wartość TCP_NODELAY, algorytm Nagle'a jest wyłączony.

Parametry

  • socketId

    liczba

    Identyfikator gniazda.

  • noDelay

    wartość logiczna

    Jeśli ma wartość Prawda, wyłącza algorytm Nagle'a.

  • 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 w 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