chrome.sockets.udp

Opis

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

Plik manifestu

Aby korzystać z 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, np. wycofanego interfejsu [socket](../socket/) API.

DnsQueryType

Chrome 103 lub nowsza

Ustawienia rozpoznawania nazw DNS. Domyślna wartość to any. Używa ona 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

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

  • remoteAddress

    ciąg znaków

    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 opcjonalny

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

  • resultCode

    liczba

    Kod wyniku zwrócony z wywołania sieciowego. Wartość ujemna oznacza błąd.

SocketInfo

Właściwości

  • bufferSize

    number opcjonalny

    Rozmiar bufora używanego do odbierania danych. Jeśli rozmiar bufora nie został określony, wartość nie jest podawana.

  • localAddress

    string opcjonalny

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

  • localPort

    number opcjonalny

    Jeśli gniazdo bazowe jest powiązane, zawiera swój port lokalny.

  • nazwa

    string opcjonalny

    Ciąg znaków zdefiniowany przez aplikację powiązany z gniazdem.

  • wstrzymana

    Wartość logiczna

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

  • trwałe,

    Wartość logiczna

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

  • socketId

    liczba

    Identyfikator gniazda.

SocketProperties

Właściwości

  • bufferSize

    number opcjonalny

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

  • nazwa

    string opcjonalny

    Ciąg znaków zdefiniowany przez aplikację powiązany z gniazdem.

  • trwałe,

    wartość logiczna opcjonalna

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

Metody

bind()

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

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

Gdy operacja bind zakończy się pomyślnie, po przybyciu pakietów UDP na określony adres lub port będą generowane zdarzenia onReceive, chyba że gniazdo jest wstrzymane.

Parametry

  • socketId

    liczba

    Identyfikator gniazda.

  • adres

    ciąg znaków

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

  • port

    liczba

    Port komputera lokalnego. Aby powiązać z wolnym portem, użyj wartości „0”.

  • callback

    funkcja

    Parametr callback wygląda tak:

    (result: number) => void

    • wynik

      liczba

      Kod wyniku zwrócony z wywołania sieciowego. Wartość ujemna oznacza błąd.

close()

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

Zamyka gniazdo i zwalnia adres/port, do którego jest ono powiązane. Każde utworzone gniazdo powinno zostać zamknięte po użyciu. Identyfikator gniazda przestaje być ważny natychmiast po wywołaniu funkcji. Gniazdo jest jednak zamykane dopiero po wywołaniu funkcji zwrotnej.

Parametry

  • socketId

    liczba

    Identyfikator gniazda.

  • callback

    funkcja opcjonalna

    Parametr callback wygląda tak:

    () => void

Zwroty

  • Promise<void>

    Chrome 121 lub nowsza

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.

create()

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

Tworzy gniazdo UDP o podanych właściwościach.

Parametry

  • usługi

    SocketProperties opcjonalny

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

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

getInfo()

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

Pobiera stan danego gniazda.

Parametry

  • socketId

    liczba

    Identyfikator gniazda.

  • callback

    funkcja opcjonalna

    Parametr callback wygląda tak:

    (socketInfo: SocketInfo) => void

    • socketInfo

      Obiekt zawierający informacje o gnieździe.

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

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

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

Parametry

  • socketId

    liczba

    Identyfikator gniazda.

  • callback

    funkcja opcjonalna

    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

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą 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

    funkcja opcjonalna

    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

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.

joinGroup()

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

Dołącza do grupy multiemisji i zaczyna odbierać pakiety z tej grupy. Przed wywołaniem tej metody gniazdo musi być powiązane z lokalnym portem.

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

      Kod wyniku zwrócony z wywołania sieciowego. Wartość ujemna oznacza błąd.

leaveGroup()

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

Opuszcza grupę multiemisji, do której wcześniej dołączono za pomocą funkcji joinGroup. Jest to konieczne tylko wtedy, gdy planujesz nadal używać gniazda, ponieważ system operacyjny zrobi to automatycznie po jego zamknięciu.

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

      Kod wyniku zwrócony z wywołania sieciowego. 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 podany adres i port. Przed wywołaniem tej metody gniazdo musi być powiązane z lokalnym portem.

Parametry

  • socketId

    liczba

    Identyfikator gniazda.

  • dane

    ArrayBuffer

    Dane do wysłania.

  • adres

    ciąg znaków

    Adres zdalnego urządzenia.

  • port

    liczba

    Port komputera zdalnego.

  • dnsQueryType

    DnsQueryType opcjonalny

    Chrome 103 lub nowsza

    Preferencje dotyczące rozpoznawania adresów.

  • callback

    funkcja

    Parametr callback wygląda tak:

    (sendInfo: SendInfo) => void

setBroadcast()

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

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

Parametry

  • socketId

    liczba

    Identyfikator gniazda.

  • włączone

    Wartość logiczna

    true – włączenie pakietów rozgłoszeniowych, false – wyłączenie pakietów rozgłoszeniowych.

  • callback

    funkcja

    Parametr callback wygląda tak:

    (result: number) => void

    • wynik

      liczba

      Kod wyniku zwrócony z wywołania sieciowego.

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ą 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

      Kod wyniku zwrócony z wywołania sieciowego. Wartość ujemna oznacza błąd.

setMulticastTimeToLive()

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

Określa 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 z wywołania sieciowego. 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 uruchamiać zdarzeń onReceive.

Parametry

  • socketId

    liczba

  • wstrzymana

    Wartość logiczna

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

  • callback

    funkcja opcjonalna

    Parametr callback wygląda tak:

    () => void

Zwroty

  • Promise<void>

    Chrome 121 lub nowsza

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą 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 do zaktualizowania.

  • callback

    funkcja opcjonalna

    Parametr callback wygląda tak:

    () => void

Zwroty

  • Promise<void>

    Chrome 121 lub nowsza

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą 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 podczas oczekiwania środowiska wykonawczego na dane na adresie gniazda i porcie wystąpi błąd sieci. Po wywołaniu tego zdarzenia gniazdo jest wstrzymywane i nie są już wywoływane żadne zdarzenia onReceive dla tego gniazda, dopóki nie zostanie ono wznowione.

Parametry