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
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
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()
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 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
-
usługi
SocketProperties opcjonalny
Właściwości gniazda (opcjonalne).
-
callback
funkcja opcjonalna
Parametr
callback
wyglą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
callback
wyglą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 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 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
callback
wyglą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 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 nowszaPreferencje dotyczące rozpoznawania adresów.
-
callback
funkcja
Parametr
callback
wyglą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 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()
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 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.
-
usługi
Właściwości do zaktualizowania.
-
callback
funkcja opcjonalna
Parametr
callback
wyglą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
callback
wyglą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 nie są już wywoływane żadne zdarzenia onReceive
dla tego gniazda, dopóki nie zostanie ono wznowione.
Parametry
-
callback
funkcja
Parametr
callback
wygląda tak:(info: ReceiveErrorInfo) => void
-
informacje
-