chrome.sockets.udp

Descrizione

Utilizza l'API chrome.sockets.udp per inviare e ricevere dati sulla rete mediante connessioni UDP. Questa API sostituisce la funzionalità UDP precedentemente trovata nell'API "socket".

Manifest

Per poter utilizzare questa API, le seguenti chiavi devono essere dichiarate nel manifest.

"sockets"

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

Chrome 103 e versioni successive

Preferenze di risoluzione DNS. Il valore predefinito è any e utilizza l'attuale configurazione del sistema operativo, che potrebbe restituire IPv4 o IPv6. ipv4 forza IPv4, mentre ipv6 forza IPv6.

Enum

"ipv4"

"ipv6"

ReceiveErrorInfo

Proprietà

  • resultCode

    numero

    Il codice risultato restituito dalla chiamata recvfrom() sottostante.

  • socketId

    numero

    L'ID del socket.

ReceiveInfo

Proprietà

  • dati

    ArrayBuffer

    Il contenuto del pacchetto UDP (troncato alla dimensione del buffer attuale).

  • 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 del socket.

SendInfo

Proprietà

  • bytesSent

    numero facoltativo

    Il numero di byte inviati (se il risultato == 0)

  • resultCode

    numero

    Il codice risultato restituito dalla chiamata di rete sottostante. Un valore negativo indica un errore.

SocketInfo

Proprietà

  • bufferSize

    numero facoltativo

    La dimensione del buffer utilizzato per ricevere i dati. Se non è stata specificata in modo esplicito alcuna dimensione del buffer, il valore non viene fornito.

  • localAddress

    stringa facoltativo

    Se il socket sottostante è associato, contiene il suo indirizzo IPv4/6 locale.

  • localPort

    numero facoltativo

    Se il socket sottostante è associato, contiene la porta locale.

  • nome

    stringa facoltativo

    Stringa definita dall'applicazione associata al socket.

  • in pausa

    boolean

    Flag che indica se al socket è bloccato l'attivazione di eventi onRicevi.

  • permanente

    boolean

    Flag che indica se il socket rimane aperto quando l'applicazione è sospesa (vedi SocketProperties.persistent).

  • socketId

    numero

    L'identificatore del socket.

SocketProperties

Proprietà

  • bufferSize

    numero 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 facoltativo

    Una stringa definita dall'applicazione associata al socket.

  • permanente

    booleano facoltativo

    Flag che indica se il socket viene lasciato aperto quando viene scaricata la pagina dell'evento dell'applicazione (consulta Gestione del ciclo di vita dell'app). Il valore predefinito è "false". Una volta caricata l'applicazione, tutti i socket aperti in precedenza con permanente=true possono essere recuperati con getSockets.

Metodi

bind()

chrome.sockets.udp.bind(
  socketId: number,
  address: string,
  port: number,
  callback: function,
)

Associa l'indirizzo locale e la porta per il socket. Per un socket client, si consiglia di utilizzare la porta 0 per consentire alla piattaforma di sceglierne una libera.

Una volta completata l'operazione bind con esito positivo, gli eventi onReceive vengono generati quando i pacchetti UDP arrivano all'indirizzo o alla porta specificati, a meno che il socket non sia in pausa.

Parametri

  • socketId

    numero

    L'ID del socket.

  • indirizzo

    stringa

    L'indirizzo della macchina locale. I formati di nome DNS, IPv4 e IPv6 sono supportati. Usare "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 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()

Promessa
chrome.sockets.udp.close(
  socketId: number,
  callback?: function,
)

Chiude il socket e rilascia l'indirizzo/la porta a cui è associato il socket. Ogni socket creato deve essere chiuso dopo l'utilizzo. L'ID socket non è più valido non appena viene richiamata la funzione. Tuttavia, il socket verrà chiuso soltanto quando viene richiamato il callback.

Parametri

  • socketId

    numero

    L'ID del socket.

  • callback

    funzione facoltativa

    Il parametro callback ha il seguente aspetto:

    ()=>void

Ritorni

  • Promise<void>

    Chrome 121 e versioni successive

    Le promesse sono supportate solo per Manifest V3 e versioni successive; altre piattaforme devono utilizzare i callback.

create()

Promessa
chrome.sockets.udp.create(
  properties?: SocketProperties,
  callback?: function,
)

Crea un socket UDP con le proprietà specificate.

Parametri

  • proprietà

    SocketProperties facoltativo

    Le proprietà del socket (facoltativo).

  • callback

    funzione facoltativa

    Il parametro callback ha il seguente aspetto:

    (createInfo: CreateInfo)=>void

    • createInfo

      Il risultato della creazione del socket.

Ritorni

  • Promise<CreateInfo>

    Chrome 121 e versioni successive

    Le promesse sono supportate solo per Manifest V3 e versioni successive; altre piattaforme devono utilizzare i callback.

getInfo()

Promessa
chrome.sockets.udp.getInfo(
  socketId: number,
  callback?: function,
)

Recupera lo stato del socket specificato.

Parametri

  • socketId

    numero

    L'ID del socket.

  • callback

    funzione facoltativa

    Il parametro callback ha il seguente aspetto:

    (socketInfo: SocketInfo)=>void

    • socketInfo

      Oggetto contenente le informazioni socket.

Ritorni

  • Promise<SocketInfo>

    Chrome 121 e versioni successive

    Le promesse sono supportate solo per Manifest V3 e versioni successive; altre piattaforme devono utilizzare i callback.

getJoinedGroups()

Promessa
chrome.sockets.udp.getJoinedGroups(
  socketId: number,
  callback?: function,
)

Restituisce gli indirizzi del gruppo multicast a cui è attualmente associato il socket.

Parametri

  • socketId

    numero

    L'ID del socket.

  • callback

    funzione facoltativa

    Il parametro callback ha il seguente aspetto:

    (groups: string[])=>void

    • gruppi

      stringa[]

      Array dei gruppi uniti dal socket.

Ritorni

  • Promessa<string[]>

    Chrome 121 e versioni successive

    Le promesse sono supportate solo per Manifest V3 e versioni successive; altre piattaforme devono utilizzare i callback.

getSockets()

Promessa
chrome.sockets.udp.getSockets(
  callback?: function,
)

Recupera l'elenco dei socket attualmente aperti di proprietà dell'applicazione.

Parametri

  • callback

    funzione facoltativa

    Il parametro callback ha il seguente aspetto:

    (socketInfos: SocketInfo[])=>void

    • socketInfos

      Array dell'oggetto contenente informazioni socket.

Ritorni

  • Promise<SocketInfo[]>

    Chrome 121 e versioni successive

    Le promesse sono supportate solo per Manifest V3 e versioni successive; 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. Il socket deve essere associato a una porta locale prima di chiamare questo metodo.

Parametri

  • socketId

    numero

    L'ID del socket.

  • indirizzo

    stringa

    L'indirizzo del gruppo a cui unirti. 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,
)

Lascia il gruppo multicast a cui si è unito in precedenza utilizzando joinGroup. Questa operazione è necessaria solo se prevedi di continuare a utilizzare il socket in seguito, poiché questa operazione verrà eseguita automaticamente dal sistema operativo quando il socket sarà chiuso.

Se esci dal gruppo, il router non potrà inviare datagrammi multicast all'host locale, presupposto che nessun altro processo dell'host sia ancora unito al gruppo.

Parametri

  • socketId

    numero

    L'ID del socket.

  • indirizzo

    stringa

    L'indirizzo del gruppo in cui lasciare. 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 sul socket all'indirizzo e alla porta indicati. Il socket deve essere associato a una porta locale prima di chiamare questo metodo.

Parametri

  • socketId

    numero

    L'ID del socket.

  • dati

    ArrayBuffer

    I dati da inviare.

  • indirizzo

    stringa

    L'indirizzo della macchina remota.

  • porta

    numero

    La porta della macchina remota.

  • dnsQueryType

    Facoltativo DnsQueryType

    Chrome 103 e versioni successive

    La preferenza di risoluzione dell'indirizzo.

  • callback

    funzione

    Il parametro callback ha il seguente aspetto:

    (sendInfo: SendInfo)=>void

    • sendInfo

      Risultato del metodo send.

setBroadcast()

Chrome 44 e versioni successive
chrome.sockets.udp.setBroadcast(
  socketId: number,
  enabled: boolean,
  callback: function,
)

Attiva o disattiva i pacchetti di broadcast su questo socket.

Parametri

  • socketId

    numero

    L'ID del socket.

  • abilitata

    boolean

    true per attivare i pacchetti di broadcast, false per disabilitarli.

  • 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,
)

Consente di impostare se i pacchetti multicast inviati dall'host al gruppo multicast devono essere restituiti in loop all'host.

Nota: il comportamento di setMulticastLoopbackMode è leggermente diverso tra Windows e sistemi simili a Unix. L'incoerenza si verifica solo quando più di un'applicazione sullo stesso host è unita allo stesso gruppo multicast e hanno impostazioni diverse per la modalità loopback multicast. Su Windows, le applicazioni con loopback disattivato non RICEVERE i pacchetti di loopback; mentre sui sistemi Unix-like, le applicazioni con loopback disattivato non INVIAno i pacchetti di loopback ad altre applicazioni sullo stesso host. Vedi MSDN: http://goo.gl/6vqbj

La chiamata di questo metodo non richiede autorizzazioni multicast.

Parametri

  • socketId

    numero

    L'ID del socket.

  • abilitata

    boolean

    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 la durata dei pacchetti multicast inviati al gruppo multicast.

La chiamata di questo metodo non richiede autorizzazioni multicast.

Parametri

  • socketId

    numero

    L'ID del socket.

  • ttl

    numero

    Il valore della durata.

  • 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()

Promessa
chrome.sockets.udp.setPaused(
  socketId: number,
  paused: boolean,
  callback?: function,
)

Mette in pausa o riattiva un socket. Un socket in pausa è bloccato dall'attivazione degli eventi onReceive.

Parametri

  • socketId

    numero

  • in pausa

    boolean

    Flag per indicare se mettere in pausa o riattivare.

  • callback

    funzione facoltativa

    Il parametro callback ha il seguente aspetto:

    ()=>void

Ritorni

  • Promise<void>

    Chrome 121 e versioni successive

    Le promesse sono supportate solo per Manifest V3 e versioni successive; altre piattaforme devono utilizzare i callback.

update()

Promessa
chrome.sockets.udp.update(
  socketId: number,
  properties: SocketProperties,
  callback?: function,
)

Aggiorna le proprietà del socket.

Parametri

  • socketId

    numero

    L'ID del socket.

  • proprietà

    Le proprietà da aggiornare.

  • callback

    funzione facoltativa

    Il parametro callback ha il seguente aspetto:

    ()=>void

Ritorni

  • Promise<void>

    Chrome 121 e versioni successive

    Le promesse sono supportate solo per Manifest V3 e versioni successive; altre piattaforme devono utilizzare i callback.

Eventi

onReceive

chrome.sockets.udp.onReceive.addListener(
  callback: function,
)

Evento generato quando è stato ricevuto un pacchetto UDP per il socket specificato.

Parametri

  • callback

    funzione

    Il parametro callback ha il seguente aspetto:

    (info: ReceiveInfo)=>void

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 fino al suo ripristino.

Parametri