chrome.sockets.udp

Opis

Używaj interfejsu API chrome.sockets.udp do wysyłania i odbierania danych przez sieć za pomocą połączeń UDP. Ten interfejs API zastępuje funkcje UDP, które wcześniej były dostępne w interfejsie „socket”.

Plik manifestu

Aby używać tego interfejsu API, musisz zadeklarować te klucze w pliku manifestu.

"sockets"

Typy

CreateInfo

Właściwości

  • socketId

    liczba

    Identyfikator nowo utworzonego gniazda. Pamiętaj, że identyfikatory gniazd utworzone za pomocą tego interfejsu API nie są zgodne z identyfikatorami gniazd utworzonymi za pomocą innych interfejsów API, takich jak wycofany interfejs API [socket](../socket/).

DnsQueryType

Chrome 103 lub nowsza wersja

Ustawienia rozpoznawania nazw DNS. Domyślna wartość to any i używa bieżącej konfiguracji systemu operacyjnego, która może zwracać adres IPv4 lub IPv6. ipv4 wymusza IPv4, a ipv6 wymusza IPv6.

Typ wyliczeniowy

"any"

"ipv4"

"ipv6"

ReceiveErrorInfo

Właściwości

  • resultCode

    liczba

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

  • socketId

    liczba

    Identyfikator gniazda.

ReceiveInfo

Właściwości

  • dane

    ArrayBuffer

    Treść pakietu UDP (skrócona do bieżącego rozmiaru bufora).

  • remoteAddress

    tekst

    Adres hosta, z którego pochodzi pakiet.

  • remotePort

    liczba

    Port hosta, z którego pochodzi pakiet.

  • socketId

    liczba

    Identyfikator gniazda.

SendInfo

Właściwości

  • bytesSent

    number optional

    Liczba wysłanych bajtów (jeśli wynik == 0)

  • resultCode

    liczba

    Kod wyniku zwrócony przez wywołanie sieciowe. Wartość ujemna oznacza błąd.

SocketInfo

Właściwości

  • bufferSize

    number optional

    Rozmiar bufora używanego do odbierania danych. Jeśli nie określono wyraźnie rozmiaru bufora, wartość nie jest podawana.

  • localAddress

    ciąg znaków opcjonalny

    Jeśli bazowe gniazdo jest powiązane, zawiera jego lokalny adres IPv4/6.

  • localPort

    number optional

    Jeśli powiązane gniazdo jest powiązane, zawiera jego port lokalny.

  • nazwa

    ciąg znaków opcjonalny

    Zdefiniowany przez aplikację ciąg znaków powiązany z gniazdem.

  • wstrzymana

    wartość logiczna

    Flaga wskazująca, czy gniazdo jest zablokowane i nie może wywoływać zdarzeń onReceive.

  • trwałe

    wartość logiczna

    Flaga z informacją, czy gniazdo pozostaje otwarte, gdy aplikacja jest zawieszona (patrz SocketProperties.persistent).

  • socketId

    liczba

    Identyfikator gniazda.

SocketProperties

Właściwości

  • bufferSize

    number optional

    Rozmiar bufora używanego do odbierania danych. Jeśli bufor jest za mały, aby odebrać pakiet UDP, dane zostaną utracone. Wartością domyślną jest 4096.

  • nazwa

    ciąg znaków opcjonalny

    Zdefiniowany przez aplikację ciąg znaków powiązany z gniazdem.

  • trwałe

    boolean opcjonalne

    Flaga wskazująca, czy gniazdo pozostaje otwarte po wyładowaniu strony zdarzenia aplikacji (patrz Zarządzanie cyklem życia aplikacji). Wartość domyślna to „false”. Po wczytaniu aplikacji wszystkie gniazda otwarte wcześniej z ustawieniem persistent=true można pobrać za pomocą getSockets.

Metody

bind()

chrome.sockets.udp.bind(
  socketId: number,
  address: string,
  port: number,
  callback: function,
)
: void

Wiąże adres lokalny i port gniazda. W przypadku gniazda klienta zalecamy użycie portu 0, aby platforma mogła wybrać wolny port.

Po pomyślnym zakończeniu operacji bind zdarzenia onReceive są wywoływane, gdy pakiety UDP docierają na określony adres/port – chyba że gniazdo jest wstrzymane.

Parametry

  • socketId

    liczba

    Identyfikator gniazda.

  • adres

    tekst

    Adres urządzenia lokalnego. Obsługiwane są nazwy DNS oraz formaty IPv4 i IPv6. Użyj „0.0.0.0”, aby akceptować pakiety ze wszystkich dostępnych lokalnych interfejsów sieciowych.

  • port

    liczba

    Port komputera lokalnego. Użyj „0”, aby powiązać z wolnym portem.

  • callback

    funkcja

    Parametr callback wygląda tak:

    (result: number) => void

    • wynik

      liczba

      Kod wyniku zwrócony przez wywołanie sieciowe. Wartość ujemna oznacza błąd.

close()

Obietnica
chrome.sockets.udp.close(
  socketId: number,
  callback?: function,
)
: Promise<void>

Zamyka gniazdo i zwalnia adres/port, z którym jest ono powiązane. Każde utworzone gniazdo powinno zostać zamknięte po użyciu. Identyfikator gniazda przestaje być ważny, gdy tylko funkcja zostanie wywołana. Gniazdo zostanie jednak zamknięte dopiero po wywołaniu funkcji zwrotnej.

Parametry

  • socketId

    liczba

    Identyfikator gniazda.

  • callback

    function opcjonalne

    Parametr callback wygląda tak:

    () => void

Zwroty

  • thought Promise<void>

    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.

create()

Obietnica
chrome.sockets.udp.create(
  properties?: SocketProperties,
  callback?: function,
)
: Promise<CreateInfo>

Tworzy gniazdo UDP z podanymi właściwościami.

Parametry

  • właściwości

    SocketProperties opcjonalny

    Właściwości gniazda (opcjonalnie).

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

getInfo()

Obietnica
chrome.sockets.udp.getInfo(
  socketId: number,
  callback?: function,
)
: Promise<SocketInfo>

Pobiera stan danego gniazda.

Parametry

  • socketId

    liczba

    Identyfikator gniazda.

  • callback

    function opcjonalne

    Parametr callback wygląda tak:

    (socketInfo: SocketInfo) => void

    • socketInfo

      Obiekt zawierający informacje o gnieździe.

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

Obietnica
chrome.sockets.udp.getJoinedGroups(
  socketId: number,
  callback?: function,
)
: Promise<string[]>

Pobiera adresy grup multicast, do których jest obecnie dołączone gniazdo.

Parametry

  • socketId

    liczba

    Identyfikator gniazda.

  • callback

    function opcjonalne

    Parametr callback wygląda tak:

    (groups: string[]) => void

    • grupy

      string[]

      Tablica grup, do których dołączyło gniazdo.

Zwroty

  • Promise<string[]>

    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.

getSockets()

Obietnica
chrome.sockets.udp.getSockets(
  callback?: function,
)
: Promise<SocketInfo[]>

Pobiera listę aktualnie otwartych gniazd należących do aplikacji.

Parametry

  • callback

    function opcjonalne

    Parametr callback wygląda tak:

    (socketInfos: SocketInfo[]) => void

    • socketInfos

      Tablica obiektów zawierających informacje o gnieździe.

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.

joinGroup()

chrome.sockets.udp.joinGroup(
  socketId: number,
  address: string,
  callback: function,
)
: void

Dołącza do grupy multiemisji i zaczyna otrzymywać pakiety z tej grupy. Przed wywołaniem tej metody gniazdo 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

      Kod wyniku zwrócony przez wywołanie sieciowe. Wartość ujemna oznacza błąd.

leaveGroup()

chrome.sockets.udp.leaveGroup(
  socketId: number,
  address: string,
  callback: function,
)
: void

Opuszcza grupę multicast, do której wcześniej dołączono za pomocą joinGroup. Wywołanie tej metody jest konieczne tylko wtedy, gdy planujesz nadal używać gniazda, ponieważ system operacyjny zrobi to automatycznie po zamknięciu gniazda.

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

      Kod wyniku zwrócony przez wywołanie sieciowe. Wartość ujemna oznacza błąd.

send()

chrome.sockets.udp.send(
  socketId: number,
  data: ArrayBuffer,
  address: string,
  port: number,
  dnsQueryType?: DnsQueryType,
  callback: function,
)
: void

Wysyła dane z danego gniazda na dany adres i port. Przed wywołaniem tej metody gniazdo musi być powiązane z portem lokalnym.

Parametry

  • socketId

    liczba

    Identyfikator gniazda.

  • dane

    ArrayBuffer

    Dane do wysłania.

  • adres

    tekst

    Adres komputera zdalnego.

  • port

    liczba

    Port komputera zdalnego.

  • dnsQueryType

    DnsQueryType opcjonalne

    Chrome 103 lub nowsza wersja

    Ustawienie rozpoznawania adresu.

  • callback

    funkcja

    Parametr callback wygląda tak:

    (sendInfo: SendInfo) => void

setBroadcast()

Chrome 44 lub nowsza wersja
chrome.sockets.udp.setBroadcast(
  socketId: number,
  enabled: boolean,
  callback: function,
)
: void

Włącza lub wyłącza pakiety rozgłoszeniowe w tym gnieździe.

Parametry

  • socketId

    liczba

    Identyfikator gniazda.

  • aktywne

    wartość logiczna

    true, aby włączyć pakiety rozgłoszeniowe, lub false, aby je wyłączyć.

  • callback

    funkcja

    Parametr callback wygląda tak:

    (result: number) => void

    • wynik

      liczba

      Kod wyniku zwrócony przez wywołanie sieciowe.

setMulticastLoopbackMode()

chrome.sockets.udp.setMulticastLoopbackMode(
  socketId: number,
  enabled: boolean,
  callback: function,
)
: void

Określa, czy pakiety multiemisji wysyłane z hosta do grupy multiemisji 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

      Kod wyniku zwrócony przez wywołanie sieciowe. Wartość ujemna oznacza błąd.

setMulticastTimeToLive()

chrome.sockets.udp.setMulticastTimeToLive(
  socketId: number,
  ttl: number,
  callback: function,
)
: void

Ustawia 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

      Kod wyniku zwrócony przez wywołanie sieciowe. Wartość ujemna oznacza błąd.

setPaused()

Obietnica
chrome.sockets.udp.setPaused(
  socketId: number,
  paused: boolean,
  callback?: function,
)
: Promise<void>

Wstrzymuje lub wznawia gniazdo. Wstrzymane gniazdo nie może wywoływać zdarzeń onReceive.

Parametry

  • socketId

    liczba

    Identyfikator gniazda.

  • wstrzymana

    wartość logiczna

    Flaga wskazująca, czy wstrzymać, czy wznowić.

  • callback

    function opcjonalne

    Parametr callback wygląda tak:

    () => void

Zwroty

  • thought Promise<void>

    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.

update()

Obietnica
chrome.sockets.udp.update(
  socketId: number,
  properties: SocketProperties,
  callback?: function,
)
: Promise<void>

Aktualizuje właściwości gniazda.

Parametry

  • socketId

    liczba

    Identyfikator gniazda.

  • właściwości

    Właściwości do zaktualizowania.

  • callback

    function opcjonalne

    Parametr callback wygląda tak:

    () => void

Zwroty

  • thought Promise<void>

    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.

Wydarzenia

onReceive

chrome.sockets.udp.onReceive.addListener(
  callback: function,
)

Zdarzenie wywoływane po odebraniu pakietu UDP dla danego gniazda.

Parametry

onReceiveError

chrome.sockets.udp.onReceiveError.addListener(
  callback: function,
)

Zdarzenie wywoływane, gdy wystąpi błąd sieci, podczas gdy środowisko wykonawcze czeka na dane na adresie i porcie gniazda. Po wywołaniu tego zdarzenia gniazdo jest wstrzymywane i nie będą dla niego wywoływane żadne zdarzenia onReceive, dopóki nie zostanie wznowione.

Parametry