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
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
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
callbackwygląda tak:(result: number) => void
-
wynik
liczba
Kod wyniku zwrócony przez wywołanie sieciowe. Wartość ujemna oznacza błąd.
-
close()
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
callbackwygląda tak:() => void
Zwroty
-
thought Promise<void>
Chrome 121 lub nowsza wersjaObiekty Promise są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Na innych platformach należy używać wywołań zwrotnych.
create()
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
callbackwygląda tak:(createInfo: CreateInfo) => void
-
createInfo
Wynik utworzenia gniazda.
-
Zwroty
-
Promise<CreateInfo>
Chrome 121 lub nowsza wersjaObiekty Promise są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Na innych platformach należy 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
function opcjonalne
Parametr
callbackwygląda tak:(socketInfo: SocketInfo) => void
-
socketInfo
Obiekt zawierający informacje o gnieździe.
-
Zwroty
-
Promise<SocketInfo>
Chrome 121 lub nowsza wersjaObiekty Promise są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Na innych platformach należy używać wywołań zwrotnych.
getJoinedGroups()
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
callbackwygląda tak:(groups: string[]) => void
-
grupy
string[]
Tablica grup, do których dołączyło gniazdo.
-
Zwroty
-
Promise<string[]>
Chrome 121 lub nowsza wersjaObiekty Promise są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Na innych platformach należy 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
function opcjonalne
Parametr
callbackwygląda tak:(socketInfos: SocketInfo[]) => void
-
socketInfos
Tablica obiektów zawierających informacje o gnieździe.
-
Zwroty
-
Promise<SocketInfo[]>
Chrome 121 lub nowsza wersjaObiekty 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
callbackwyglą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
callbackwyglą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 wersjaUstawienie rozpoznawania adresu.
-
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, aby włączyć pakiety rozgłoszeniowe, lubfalse, aby je wyłączyć. -
callback
funkcja
Parametr
callbackwyglą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
callbackwyglą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
callbackwygląda tak:(result: number) => void
-
wynik
liczba
Kod wyniku zwrócony przez wywołanie sieciowe. 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
function opcjonalne
Parametr
callbackwygląda tak:() => void
Zwroty
-
thought Promise<void>
Chrome 121 lub nowsza wersjaObiekty Promise są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Na innych platformach należy 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
function opcjonalne
Parametr
callbackwygląda tak:() => void
Zwroty
-
thought Promise<void>
Chrome 121 lub nowsza wersjaObiekty 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
-
callback
funkcja
Parametr
callbackwygląda tak:(info: ReceiveInfo) => void
-
informacje
-
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
-
callback
funkcja
Parametr
callbackwygląda tak:(info: ReceiveErrorInfo) => void
-
informacje
-