chrome.sockets.udp

Descrizione

Utilizza l'API chrome.sockets.udp per inviare e ricevere dati sulla rete tramite connessioni UDP. Questa API sostituisce la funzionalità UDP precedentemente presente nel "socket" tramite Google Cloud CLI o tramite l'API Compute Engine.

Manifest

Per 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, come 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

"qualsiasi"

"ipv4"

"ipv6"

ReceiveErrorInfo

Proprietà

  • resultCode

    numero

    Il codice risultato restituito dalla chiamata recvfrom() sottostante.

  • socketId

    numero

    L'ID socket.

ReceiveInfo

Proprietà

  • dati

    ArrayBuffer

    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

    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 esplicitamente 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 sua porta locale.

  • nome

    stringa facoltativo

    Stringa definita dall'applicazione associata al socket.

  • in pausa

    booleano

    Flag che indica se il socket è bloccato per l'attivazione di 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

    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.

  • persistente

    booleano facoltativo

    Flag che indica se il socket viene lasciato aperto quando viene eseguito l'unload della pagina degli eventi dell'applicazione (vedi Gestione del ciclo di vita delle app). Il valore predefinito è "false". Quando l'applicazione viene caricata, 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 scegliere una porta libera.

Una volta completata l'operazione bind, vengono generati eventi onReceive all'arrivo dei pacchetti UDP all'indirizzo o alla porta specificati, a meno che il socket non venga messo 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 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()

Promesso .
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'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 facoltativa

    Il parametro callback ha il seguente aspetto:

    () => void

Resi

  • Promesso<void>

    Chrome 121 e versioni successive .

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

create()

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

Crea un socket UDP con le proprietà specificate.

Parametri

  • proprietà

    SocketProperties facoltativo

    Le proprietà del socket (facoltative).

  • callback

    funzione facoltativa

    Il parametro callback ha il seguente aspetto:

    (createInfo: CreateInfo) => void

    • createInfo

      Il risultato della creazione del socket.

Resi

  • Promise&lt;CreateInfo&gt;

    Chrome 121 e versioni successive .

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

getInfo()

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

Recupera lo stato del socket specificato.

Parametri

  • socketId

    numero

    L'ID socket.

  • callback

    funzione facoltativa

    Il parametro callback ha il seguente aspetto:

    (socketInfo: SocketInfo) => void

    • socketInfo

      Oggetto contenente le informazioni sul socket.

Resi

  • Promise&lt;SocketInfo&gt;

    Chrome 121 e versioni successive .

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

getJoinedGroups()

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

Ottiene gli indirizzi di gruppo multicast a cui è attualmente unito il socket.

Parametri

  • socketId

    numero

    L'ID socket.

  • callback

    funzione facoltativa

    Il parametro callback ha il seguente aspetto:

    (groups: string[]) => void

    • gruppi

      stringa[]

      Array di gruppi a cui è stato unito il socket.

Resi

  • Promise&lt;string[]&gt;

    Chrome 121 e versioni successive .

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

getSockets()

Promesso .
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 di oggetti contenente informazioni sul socket.

Resi

  • Promise&lt;SocketInfo[]&gt;

    Chrome 121 e versioni successive .

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

Unisce il gruppo multicast e inizia a ricevere i pacchetti da quel gruppo. Prima di chiamare questo metodo, il socket deve essere associato a una porta locale.

Parametri

  • socketId

    numero

    L'ID socket.

  • indirizzo

    stringa

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

Lascia il gruppo multicast già unito 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 è chiuso.

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

Parametri

  • socketId

    numero

    L'ID socket.

  • indirizzo

    stringa

    L'indirizzo del gruppo da cui uscire. 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 specificato all'indirizzo e alla porta specificati. Prima di chiamare questo metodo, il socket deve essere associato a una porta locale.

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 successive .

    La preferenza di risoluzione degli indirizzi.

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

Abilita o disabilita i pacchetti broadcast su questo socket.

Parametri

  • socketId

    numero

    L'ID socket.

  • abilitata

    booleano

    true per abilitare i pacchetti 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 verranno ritrasmessi all'host.

Nota: il comportamento di setMulticastLoopbackMode è leggermente diverso tra i sistemi simili a Windows e Unix. L'incoerenza si verifica solo quando più applicazioni sullo stesso host sono state unite allo stesso gruppo multicast pur avendo impostazioni diverse nella modalità di loopback multicast. Su Windows, le applicazioni con il loopback disattivato non RICEVEranno i pacchetti di loopback; mentre su sistemi simili a Unix, le applicazioni con loopback disattivato non INVIARE i pacchetti di loopback ad altre applicazioni sullo stesso host. Vedi MSDN: http://goo.gl/6vqbj

La chiamata di questo metodo non richiede le autorizzazioni multicast.

Parametri

  • socketId

    numero

    L'ID socket.

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

La chiamata di questo metodo non richiede le autorizzazioni multicast.

Parametri

  • socketId

    numero

    L'ID socket.

  • ttl

    numero

    Il valore durata (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()

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

Mette in pausa o riattiva un socket. Un socket in pausa non può attivare eventi onReceive.

Parametri

  • socketId

    numero

  • in pausa

    booleano

    Contrassegno per indicare se mettere in pausa o riattivare la pubblicazione.

  • callback

    funzione facoltativa

    Il parametro callback ha il seguente aspetto:

    () => void

Resi

  • Promesso<void>

    Chrome 121 e versioni successive .

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

update()

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

Aggiorna le proprietà del socket.

Parametri

  • socketId

    numero

    L'ID socket.

  • proprietà

    Le proprietà da aggiornare.

  • callback

    funzione facoltativa

    Il parametro callback ha il seguente aspetto:

    () => void

Resi

  • Promesso<void>

    Chrome 121 e versioni successive .

    Le 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 generato quando viene 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 a quando il socket non viene ripristinato.

Parametri