Descrizione
Utilizza l'API chrome.sockets.udp per inviare e ricevere dati sulla rete utilizzando connessioni UDP. Questa API sostituisce la funzionalità UDP precedentemente presente nell'API "socket".
Manifest
Tipi
CreateInfo
Proprietà
-
socketId
numero
L'ID del socket appena creato. Tieni presente che gli ID socket creati da questa API non sono compatibili con gli ID socket creati da altre API, ad esempio l'API
[socket](../socket/)deprecata.
DnsQueryType
Preferenze di risoluzione DNS. Il valore predefinito è any e utilizza la configurazione attuale del sistema operativo, che potrebbe restituire IPv4 o IPv6. ipv4 forza l'utilizzo di IPv4, mentre ipv6 forza l'utilizzo di IPv6.
Enum
"any"
"ipv4"
"ipv6"
ReceiveErrorInfo
Proprietà
-
resultCode
numero
Il codice risultato restituito dalla chiamata recvfrom() sottostante.
-
socketId
numero
L'ID socket.
ReceiveInfo
Proprietà
-
dati
ArrayBuffer
Il contenuto del pacchetto UDP (troncato alla dimensione attuale del buffer).
-
remoteAddress
stringa
L'indirizzo dell'host da cui proviene il pacchetto.
-
remotePort
numero
La porta dell'host da cui proviene il pacchetto.
-
socketId
numero
L'ID socket.
SendInfo
Proprietà
-
bytesSent
number optional
Il numero di byte inviati (se result == 0)
-
resultCode
numero
Il codice risultato restituito dalla chiamata di rete sottostante. Un valore negativo indica un errore.
SocketInfo
Proprietà
-
bufferSize
number optional
La dimensione del buffer utilizzato per ricevere i dati. Se non è stata specificata esplicitamente alcuna dimensione del buffer, il valore non viene fornito.
-
localAddress
stringa facoltativa
Se il socket sottostante è associato, contiene il suo indirizzo IPv4/6 locale.
-
localPort
number optional
Se il socket sottostante è associato, contiene la porta locale.
-
nome
stringa facoltativa
Stringa definita dall'applicazione associata al socket.
-
in pausa
booleano
Flag che indica se il socket è bloccato dall'attivazione degli eventi onReceive.
-
persistente
booleano
Flag che indica se il socket viene lasciato aperto quando l'applicazione viene sospesa (vedi
SocketProperties.persistent). -
socketId
numero
L'identificatore del socket.
SocketProperties
Proprietà
-
bufferSize
number optional
La dimensione del buffer utilizzato per ricevere i dati. Se il buffer è troppo piccolo per ricevere il pacchetto UDP, i dati vengono persi. Il valore predefinito è 4096.
-
nome
stringa facoltativa
Una stringa definita dall'applicazione associata al socket.
-
persistente
boolean facoltativo
Flag che indica se il socket viene lasciato aperto quando la pagina dell'evento dell'applicazione viene scaricata (consulta Gestire il ciclo di vita dell'app). Il valore predefinito è "false". Quando l'applicazione viene caricata, tutti i socket precedentemente aperti con persistent=true possono essere recuperati con
getSockets.
Metodi
bind()
chrome.sockets.udp.bind(
socketId: number,
address: string,
port: number,
callback: function,
): void
Associa l'indirizzo e la porta locali per il socket. Per un socket client, è consigliabile utilizzare la porta 0 per consentire alla piattaforma di scegliere una porta libera.
Una volta completata l'operazione bind, gli eventi onReceive vengono attivati quando i pacchetti UDP arrivano all'indirizzo/porta specificati, a meno che il socket non sia in pausa.
Parametri
-
socketId
numero
L'ID socket.
-
indirizzo
stringa
L'indirizzo della macchina locale. Sono supportati i formati nome DNS, IPv4 e IPv6. Utilizza "0.0.0.0" per accettare pacchetti da tutte le interfacce di rete locali disponibili.
-
porta
numero
La porta della macchina locale. Utilizza "0" per l'associazione a una porta libera.
-
callback
funzione
Il parametro
callbackha il seguente aspetto:(result: number) => void
-
risultato
numero
Il codice risultato restituito dalla chiamata di rete sottostante. Un valore negativo indica un errore.
-
close()
chrome.sockets.udp.close(
socketId: number,
callback?: function,
): Promise<void>
Chiude il socket e rilascia l'indirizzo/la porta a cui è associato. Ogni socket creato deve essere chiuso dopo l'uso. L'ID socket non è più valido non appena viene chiamata la funzione. Tuttavia, la chiusura del socket è garantita solo quando viene richiamato il callback.
Parametri
-
socketId
numero
L'ID socket.
-
callback
funzione elemento facoltativo
Il parametro
callbackha il seguente aspetto:() => void
Resi
-
Promise<void>
Chrome 121 e versioni successiveLe promise sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
create()
chrome.sockets.udp.create(
properties?: SocketProperties,
callback?: function,
): Promise<CreateInfo>
Crea un socket UDP con le proprietà specificate.
Parametri
-
proprietà
SocketProperties facoltativo
Le proprietà del socket (facoltativo).
-
callback
funzione elemento facoltativo
Il parametro
callbackha il seguente aspetto:(createInfo: CreateInfo) => void
-
createInfo
Il risultato della creazione del socket.
-
Resi
-
Promise<CreateInfo>
Chrome 121 e versioni successiveLe promise sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
getInfo()
chrome.sockets.udp.getInfo(
socketId: number,
callback?: function,
): Promise<SocketInfo>
Recupera lo stato del socket specificato.
Parametri
-
socketId
numero
L'ID socket.
-
callback
funzione elemento facoltativo
Il parametro
callbackha il seguente aspetto:(socketInfo: SocketInfo) => void
-
socketInfo
Oggetto contenente le informazioni sul socket.
-
Resi
-
Promise<SocketInfo>
Chrome 121 e versioni successiveLe promise sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
getJoinedGroups()
chrome.sockets.udp.getJoinedGroups(
socketId: number,
callback?: function,
): Promise<string[]>
Recupera gli indirizzi dei gruppi multicast a cui è attualmente collegato il socket.
Parametri
-
socketId
numero
L'ID socket.
-
callback
funzione elemento facoltativo
Il parametro
callbackha il seguente aspetto:(groups: string[]) => void
-
gruppi
string[]
Array di gruppi a cui si è unito il socket.
-
Resi
-
Promise<string[]>
Chrome 121 e versioni successiveLe promise sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
getSockets()
chrome.sockets.udp.getSockets(
callback?: function,
): Promise<SocketInfo[]>
Recupera l'elenco dei socket attualmente aperti di proprietà dell'applicazione.
Parametri
-
callback
funzione elemento facoltativo
Il parametro
callbackha il seguente aspetto:(socketInfos: SocketInfo[]) => void
-
socketInfos
Array di oggetti contenenti informazioni sui socket.
-
Resi
-
Promise<SocketInfo[]>
Chrome 121 e versioni successiveLe promise sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
joinGroup()
chrome.sockets.udp.joinGroup(
socketId: number,
address: string,
callback: function,
): void
Si unisce al gruppo multicast e inizia a ricevere pacchetti da quel gruppo. Il socket deve essere associato a una porta locale prima di chiamare questo metodo.
Parametri
-
socketId
numero
L'ID socket.
-
indirizzo
stringa
L'indirizzo del gruppo a cui vuoi unirti. I nomi di dominio non sono supportati.
-
callback
funzione
Il parametro
callbackha il seguente aspetto:(result: number) => void
-
risultato
numero
Il codice risultato restituito dalla chiamata di rete sottostante. Un valore negativo indica un errore.
-
leaveGroup()
chrome.sockets.udp.leaveGroup(
socketId: number,
address: string,
callback: function,
): void
Esce dal gruppo multicast a cui si era unito in precedenza utilizzando joinGroup. Questa operazione è necessaria solo se prevedi di continuare a utilizzare il socket in un secondo momento, poiché verrà eseguita automaticamente dal sistema operativo alla chiusura del socket.
L'uscita dal gruppo impedisce al router di inviare datagrammi multicast all'host locale, supponendo che nessun altro processo sull'host sia ancora unito al gruppo.
Parametri
-
socketId
numero
L'ID socket.
-
indirizzo
stringa
L'indirizzo del gruppo da abbandonare. I nomi di dominio non sono supportati.
-
callback
funzione
Il parametro
callbackha il seguente aspetto:(result: number) => void
-
risultato
numero
Il codice risultato restituito dalla chiamata di rete sottostante. Un valore negativo indica un errore.
-
send()
chrome.sockets.udp.send(
socketId: number,
data: ArrayBuffer,
address: string,
port: number,
dnsQueryType?: DnsQueryType,
callback: function,
): void
Invia i dati sul socket specificato all'indirizzo e alla porta specificati. Il socket deve essere associato a una porta locale prima di chiamare questo metodo.
Parametri
-
socketId
numero
L'ID socket.
-
dati
ArrayBuffer
I dati da inviare.
-
indirizzo
stringa
L'indirizzo della macchina remota.
-
porta
numero
La porta della macchina remota.
-
dnsQueryType
DnsQueryType facoltativo
Chrome 103 e versioni successiveLa preferenza di risoluzione degli indirizzi.
-
callback
funzione
Il parametro
callbackha il seguente aspetto:(sendInfo: SendInfo) => void
-
sendInfo
Risultato del metodo
send.
-
setBroadcast()
chrome.sockets.udp.setBroadcast(
socketId: number,
enabled: boolean,
callback: function,
): void
Attiva o disattiva i pacchetti di trasmissione su questo socket.
Parametri
-
socketId
numero
L'ID socket.
-
attivato
booleano
trueper attivare i pacchetti di trasmissione,falseper disattivarli. -
callback
funzione
Il parametro
callbackha il seguente aspetto:(result: number) => void
-
risultato
numero
Il codice risultato restituito dalla chiamata di rete sottostante.
-
setMulticastLoopbackMode()
chrome.sockets.udp.setMulticastLoopbackMode(
socketId: number,
enabled: boolean,
callback: function,
): void
Imposta se i pacchetti multicast inviati dall'host al gruppo multicast verranno restituiti all'host.
Nota: il comportamento di setMulticastLoopbackMode è leggermente diverso tra i sistemi Windows e Unix-like. L'incoerenza si verifica solo quando più applicazioni sullo stesso host sono associate allo stesso gruppo multicast, ma hanno impostazioni diverse per la modalità di loopback multicast. Su Windows, le applicazioni con loopback disattivato non RICEVERANNO i pacchetti di loopback, mentre sui sistemi Unix-like, le applicazioni con loopback disattivato non INVIERANNO i pacchetti di loopback ad altre applicazioni sullo stesso host. Consulta MSDN: https://learn.microsoft.com/en-us/windows/win32/winsock/ip-multicast-2
La chiamata di questo metodo non richiede autorizzazioni multicast.
Parametri
-
socketId
numero
L'ID socket.
-
attivato
booleano
Indica se attivare la modalità di loopback.
-
callback
funzione
Il parametro
callbackha il seguente aspetto:(result: number) => void
-
risultato
numero
Il codice risultato restituito dalla chiamata di rete sottostante. Un valore negativo indica un errore.
-
setMulticastTimeToLive()
chrome.sockets.udp.setMulticastTimeToLive(
socketId: number,
ttl: number,
callback: function,
): void
Imposta la durata (TTL) dei pacchetti multicast inviati al gruppo multicast.
La chiamata di questo metodo non richiede autorizzazioni multicast.
Parametri
-
socketId
numero
L'ID socket.
-
ttl
numero
Il valore della durata (TTL).
-
callback
funzione
Il parametro
callbackha il seguente aspetto:(result: number) => void
-
risultato
numero
Il codice risultato restituito dalla chiamata di rete sottostante. Un valore negativo indica un errore.
-
setPaused()
chrome.sockets.udp.setPaused(
socketId: number,
paused: boolean,
callback?: function,
): Promise<void>
Mette in pausa o riattiva un socket. Un socket in pausa non può attivare eventi onReceive.
Parametri
-
socketId
numero
L'ID socket.
-
in pausa
booleano
Flag per indicare se mettere in pausa o riattivare.
-
callback
funzione elemento facoltativo
Il parametro
callbackha il seguente aspetto:() => void
Resi
-
Promise<void>
Chrome 121 e versioni successiveLe promise sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
update()
chrome.sockets.udp.update(
socketId: number,
properties: SocketProperties,
callback?: function,
): Promise<void>
Aggiorna le proprietà del socket.
Parametri
-
socketId
numero
L'ID socket.
-
proprietà
Le proprietà da aggiornare.
-
callback
funzione elemento facoltativo
Il parametro
callbackha il seguente aspetto:() => void
Resi
-
Promise<void>
Chrome 121 e versioni successiveLe promise sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
Eventi
onReceive
chrome.sockets.udp.onReceive.addListener(
callback: function,
)
Evento attivato quando è stato ricevuto un pacchetto UDP per il socket specificato.
Parametri
-
callback
funzione
Il parametro
callbackha il seguente aspetto:(info: ReceiveInfo) => void
-
informazioni
-
onReceiveError
chrome.sockets.udp.onReceiveError.addListener(
callback: function,
)
Evento generato quando si è verificato un errore di rete mentre il runtime era in attesa di dati sull'indirizzo e sulla porta del socket. Una volta generato questo evento, il socket viene messo in pausa e non verranno generati altri eventi onReceive per questo socket finché non viene ripristinato.
Parametri
-
callback
funzione
Il parametro
callbackha il seguente aspetto:(info: ReceiveErrorInfo) => void
-
informazioni
-