Opis
Używaj interfejsu chrome.sockets.udp 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
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 API
[socket](../socket/).
DnsQueryType
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
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 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
ciąg znaków 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
ciąg znaków 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
ciąg znaków 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 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 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
tekst
Adres urządzenia lokalnego. Obsługiwane są formaty nazwy DNS, 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. Aby powiązać z wolnym portem, użyj wartości „0”.
-
callback
funkcja
Parametr
callbackwygląda tak:(result: number) => void
-
wynik
liczba
Kod wyniku zwrócony z wywołania sieciowego. Wartość ujemna oznacza błąd.
-
close()
chrome.sockets.udp.close(
socketId: number,
callback?: function,
): Promise<void>
Zamyka gniazdo i zwalnia adres lub port, do którego jest ono przypisane. 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 wywołania zwrotnego.
Parametry
-
socketId
liczba
Identyfikator gniazda.
-
callback
funkcja opcjonalna
Parametr
callbackwygląda tak:() => void
Zwroty
-
Promise<void>
Chrome 121 lub nowszaObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.
create()
chrome.sockets.udp.create(
properties?: SocketProperties,
callback?: function,
): Promise<CreateInfo>
Tworzy gniazdo UDP o podanych właściwościach.
Parametry
-
właściwości
SocketProperties opcjonalny
Właściwości gniazda (opcjonalne).
-
callback
funkcja opcjonalna
Parametr
callbackwygląda tak:(createInfo: CreateInfo) => void
-
createInfo
Wynik utworzenia gniazda.
-
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.
getInfo()
chrome.sockets.udp.getInfo(
socketId: number,
callback?: function,
): Promise<SocketInfo>
Pobiera stan danego gniazda.
Parametry
-
socketId
liczba
Identyfikator gniazda.
-
callback
funkcja opcjonalna
Parametr
callbackwygląda tak:(socketInfo: SocketInfo) => void
-
socketInfo
Obiekt zawierający informacje o gnieździe.
-
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.sockets.udp.getJoinedGroups(
socketId: number,
callback?: function,
): Promise<string[]>
Pobiera adresy grup multicast, do których gniazdo jest obecnie przyłączone.
Parametry
-
socketId
liczba
Identyfikator gniazda.
-
callback
funkcja opcjonalna
Parametr
callbackwygląda tak:(groups: string[]) => void
-
grupy
string[]
Tablica grup, do których dołączyło gniazdo.
-
Zwroty
-
Promise<string[]>
Chrome 121 lub nowszaObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.
getSockets()
chrome.sockets.udp.getSockets(
callback?: function,
): Promise<SocketInfo[]>
Pobiera listę aktualnie otwartych gniazd należących do aplikacji.
Parametry
-
callback
funkcja opcjonalna
Parametr
callbackwygląda tak:(socketInfos: SocketInfo[]) => void
-
socketInfos
Tablica obiektów zawierających informacje o gnieździe.
-
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.
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 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
callbackwyglą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ę multicast, 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, 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
callbackwyglą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 portem lokalnym.
Parametry
-
socketId
liczba
Identyfikator gniazda.
-
dane
ArrayBuffer
Dane do wysłania.
-
adres
tekst
Adres zdalnego urządzenia.
-
port
liczba
Port komputera zdalnego.
-
dnsQueryType
DnsQueryType opcjonalny
Chrome 103 lub nowszaPreferencje dotyczące rozpoznawania adresów.
-
callback
funkcja
Parametr
callbackwygląda tak:(sendInfo: SendInfo) => void
-
sendInfo
Wynik metody
send.
-
setBroadcast()
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– włączenie pakietów rozgłoszeniowych,false– wyłączenie pakietów rozgłoszeniowych. -
callback
funkcja
Parametr
callbackwyglą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 multicast, ale mająca różne ustawienia trybu pętli zwrotnej multicast. W systemie Windows aplikacje z wyłączonym połączeniem zwrotnym nie BĘDĄ OTRZYMYWAĆ pakietów połączenia zwrotnego, a w systemach uniksopodobnych aplikacje z wyłączonym połączeniem zwrotnym nie BĘDĄ WYSYŁAĆ pakietów połączenia 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
Określ, czy chcesz włączyć tryb pętli zwrotnej.
-
callback
funkcja
Parametr
callbackwyglą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
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
callbackwygląda tak:(result: number) => void
-
wynik
liczba
Kod wyniku zwrócony z wywołania sieciowego. Wartość ujemna oznacza błąd.
-
setPaused()
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
funkcja opcjonalna
Parametr
callbackwygląda tak:() => void
Zwroty
-
Promise<void>
Chrome 121 lub nowszaObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.
update()
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
funkcja opcjonalna
Parametr
callbackwygląda tak:() => void
Zwroty
-
Promise<void>
Chrome 121 lub nowszaObietnice 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
-
callback
funkcja
Parametr
callbackwygląda tak:(info: ReceiveInfo) => void
-
informacje
-
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 do momentu jego wznowienia nie są wywoływane żadne kolejne zdarzenia onReceive.
Parametry
-
callback
funkcja
Parametr
callbackwygląda tak:(info: ReceiveErrorInfo) => void
-
informacje
-