Descrizione
Utilizza l'API chrome.sockets.udp
per inviare e ricevere dati sulla rete utilizzando connessioni UDP. Questa API sostituisce la funzionalità UDP precedentemente disponibile nell'API "socket".
Manifest
Tipi
CreateInfo
Proprietà
-
socketId
numero
L'ID della presa appena creata. Tieni presente che gli ID socket creati da questa API non sono compatibili con quelli creati da altre API, come l'API
[
socket](../socket/)
deprecata.
DnsQueryType
Preferenze di risoluzione DNS. Il valore predefinito è any
e utilizza la configurazione corrente del sistema operativo, che può restituire IPv4 o IPv6. ipv4
forza IPv4 e ipv6
forza IPv6.
Enum
"any"
"ipv4"
"ipv6"
ReceiveErrorInfo
Proprietà
-
resultCode
numero
Il codice risultato restituito dalla chiamata recvfrom() sottostante.
-
socketId
numero
L'ID della presa.
ReceiveInfo
Proprietà
-
dati
ArrayBuffer
Il contenuto del pacchetto UDP (troncato alle dimensioni attuali 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 della presa.
SendInfo
Proprietà
-
bytesSent
number facoltativo
Il numero di byte inviati (se il risultato è uguale a 0)
-
resultCode
numero
Il codice risultato restituito dalla chiamata di rete sottostante. Un valore negativo indica un errore.
SocketInfo
Proprietà
-
bufferSize
number facoltativo
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 la socket sottostante è associata, contiene il relativo indirizzo IPv4/6 locale.
-
localPort
number facoltativo
Se la socket sottostante è associata, contiene la relativa porta locale.
-
nome
stringa facoltativa
Stringa definita dall'applicazione associata alla presa.
-
in pausa
booleano
Flag che indica se la presa è bloccata dall'attivare gli eventi onReceive.
-
persistente
booleano
Flag che indica se la presa viene lasciata aperta quando l'applicazione è sospesa (vedi
SocketProperties.persistent
). -
socketId
numero
L'identificatore della presa.
SocketProperties
Proprietà
-
bufferSize
number facoltativo
La dimensione del buffer utilizzato per ricevere i dati. Se il buffer è troppo piccolo per ricevere il pacchetto UDP, i dati andranno persi. Il valore predefinito è 4096.
-
nome
stringa facoltativa
Una stringa definita dall'applicazione associata alla presa.
-
persistente
booleano facoltativo
Indica se la presa viene lasciata aperta quando viene scaricata la pagina dell'evento dell'applicazione (vedi Gestire il ciclo di vita dell'app). Il valore predefinito è "false". Quando l'applicazione viene caricata, tutti i socket aperti in precedenza con persistent=true possono essere recuperati con
getSockets
.
Metodi
bind()
chrome.sockets.udp.bind(
socketId: number,
address: string,
port: number,
callback: function,
)
Associa l'indirizzo e la porta locale per la socket. Per una socket client, è consigliabile utilizzare la porta 0 per consentire alla piattaforma di scegliere una porta libera.
Una volta completata l'operazione bind
, vengono generati eventi onReceive
quando i pacchetti UDP arrivano all'indirizzo/alla porta specificati, a meno che la socket non sia in pausa.
Parametri
-
socketId
numero
L'ID della presa.
-
indirizzo
stringa
L'indirizzo della macchina locale. Sono supportati i formati nome DNS, IPv4 e IPv6. Utilizza "0.0.0.0" per accettare i pacchetti da tutte le interfacce di rete locali disponibili.
-
porta
numero
La porta della macchina locale. Utilizza "0" per eseguire il binding a una porta libera.
-
callback
funzione
Il parametro
callback
ha 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,
)
Chiude la presa e rilascia l'indirizzo/la porta a cui è associata. Ogni socket creato deve essere chiuso dopo l'uso. L'ID socket non è più valido non appena viene chiamata la funzione. Tuttavia, è garantito che la presa venga chiusa solo quando viene invocato il callback.
Parametri
-
socketId
numero
L'ID della presa.
-
callback
function facoltativa
Il parametro
callback
ha il seguente aspetto:() => void
Resi
-
Promise<void>
Chrome 121 e versioni successiveLe promesse 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,
)
Crea una socket UDP con le proprietà specificate.
Parametri
-
proprietà
SocketProperties facoltativo
Le proprietà della presa (facoltative).
-
callback
function facoltativa
Il parametro
callback
ha il seguente aspetto:(createInfo: CreateInfo) => void
-
createInfo
Il risultato della creazione della presa.
-
Resi
-
Promise<CreateInfo>
Chrome 121 e versioni successiveLe promesse 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,
)
Recupera lo stato della presa specificata.
Parametri
-
socketId
numero
L'ID della presa.
-
callback
function facoltativa
Il parametro
callback
ha il seguente aspetto:(socketInfo: SocketInfo) => void
-
socketInfo
Oggetto contenente le informazioni sulla presa.
-
Resi
-
Promise<SocketInfo>
Chrome 121 e versioni successiveLe promesse 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,
)
Recupera gli indirizzi di gruppo multicast a cui è attualmente connesso il socket.
Parametri
-
socketId
numero
L'ID della presa.
-
callback
function facoltativa
Il parametro
callback
ha il seguente aspetto:(groups: string[]) => void
-
gruppi
stringa[]
Array di gruppi a cui si è unito il socket.
-
Resi
-
Promise<string[]>
Chrome 121 e versioni successiveLe promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
getSockets()
chrome.sockets.udp.getSockets(
callback?: function,
)
Recupera l'elenco dei socket attualmente aperti di proprietà dell'applicazione.
Parametri
-
callback
function facoltativa
Il parametro
callback
ha il seguente aspetto:(socketInfos: SocketInfo[]) => void
-
socketInfos
Array di oggetti contenenti informazioni sulla presa.
-
Resi
-
Promise<SocketInfo[]>
Chrome 121 e versioni successiveLe promesse 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,
)
Si unisce al gruppo multicast e inizia a ricevere pacchetti da quel gruppo. La socket deve essere associata a una porta locale prima di chiamare questo metodo.
Parametri
-
socketId
numero
L'ID della presa.
-
indirizzo
stringa
L'indirizzo del gruppo a cui vuoi partecipare. I nomi di dominio non sono supportati.
-
callback
funzione
Il parametro
callback
ha 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,
)
Esce dal gruppo multicast a cui hai aderito in precedenza utilizzando joinGroup
. Questa chiamata è necessaria solo se prevedi di continuare a utilizzare la presa in un secondo momento, poiché verrà eseguita automaticamente dal sistema operativo quando la presa viene chiusa.
L'abbandono del gruppo impedirà 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 della presa.
-
indirizzo
stringa
L'indirizzo del gruppo da abbandonare. I nomi di dominio non sono supportati.
-
callback
funzione
Il parametro
callback
ha 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,
)
Invia i dati sulla socket specificata all'indirizzo e alla porta specificati. La socket deve essere associata a una porta locale prima di chiamare questo metodo.
Parametri
-
socketId
numero
L'ID della presa.
-
dati
ArrayBuffer
I dati da inviare.
-
indirizzo
stringa
L'indirizzo della macchina remota.
-
porta
numero
La porta del computer remoto.
-
dnsQueryType
DnsQueryType facoltativo
Chrome 103 e versioni successiveLa preferenza di risoluzione degli indirizzi.
-
callback
funzione
Il parametro
callback
ha il seguente aspetto:(sendInfo: SendInfo) => void
-
sendInfo
Risultato del metodo
send
.
-
setBroadcast()
chrome.sockets.udp.setBroadcast(
socketId: number,
enabled: boolean,
callback: function,
)
Attiva o disattiva i pacchetti di trasmissione su questa socket.
Parametri
-
socketId
numero
L'ID della presa.
-
abilitata
booleano
true
per attivare i pacchetti di trasmissione,false
per disattivarli. -
callback
funzione
Il parametro
callback
ha 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,
)
Imposta se i pacchetti multicast inviati dall'host al gruppo multicast verranno inoltrati all'host.
Nota: il comportamento di setMulticastLoopbackMode
è leggermente diverso tra i sistemi Windows e Unix-like. L'incongruenza si verifica solo quando sono presenti più applicazioni sullo stesso host unite allo stesso gruppo multicast, ma con impostazioni diverse per la modalità di loopback multicast. Su Windows, le applicazioni con il loopback disattivato non RICEVERANNO i pacchetti loopback, mentre sui sistemi Unix-like le applicazioni con il loopback disattivato non INVIERANNO i pacchetti loopback ad altre applicazioni sullo stesso host. Consulta MSDN: http://goo.gl/6vqbj
La chiamata di questo metodo non richiede autorizzazioni di multicast.
Parametri
-
socketId
numero
L'ID della presa.
-
abilitata
booleano
Indica se attivare la modalità di loopback.
-
callback
funzione
Il parametro
callback
ha 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,
)
Imposta il time-to-live dei pacchetti multicast inviati al gruppo multicast.
La chiamata di questo metodo non richiede autorizzazioni di multicast.
Parametri
-
socketId
numero
L'ID della presa.
-
ttl
numero
Il valore TTL.
-
callback
funzione
Il parametro
callback
ha 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,
)
Mette in pausa o riattiva una presa. Un socket in pausa non può attivare eventi onReceive
.
Parametri
-
socketId
numero
-
in pausa
booleano
Flag per indicare se mettere in pausa o meno.
-
callback
function facoltativa
Il parametro
callback
ha il seguente aspetto:() => void
Resi
-
Promise<void>
Chrome 121 e versioni successiveLe promesse 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,
)
Aggiorna le proprietà del socket.
Parametri
-
socketId
numero
L'ID della presa.
-
proprietà
Le proprietà da aggiornare.
-
callback
function facoltativa
Il parametro
callback
ha il seguente aspetto:() => void
Resi
-
Promise<void>
Chrome 121 e versioni successiveLe promesse 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 la socket specificata.
Parametri
-
callback
funzione
Il parametro
callback
ha il seguente aspetto:(info: ReceiveInfo) => void
-
informazioni
-
onReceiveError
chrome.sockets.udp.onReceiveError.addListener(
callback: function,
)
Evento attivato quando si è verificato un errore di rete mentre il runtime era in attesa di dati sull'indirizzo e sulla porta della socket. Una volta attivato questo evento, il socket viene messo in pausa e non verranno attivati altri eventi onReceive
per questo socket finché non verrà ripreso.
Parametri
-
callback
funzione
Il parametro
callback
ha il seguente aspetto:(info: ReceiveErrorInfo) => void
-
informazioni
-