chrome.socket

Descrizione

Utilizza l'API chrome.socket per inviare e ricevere dati sulla rete utilizzando connessioni TCP e UDP. Nota:a partire da Chrome 33, questa API è ritirata a favore delle API sockets.udp, sockets.tcp e sockets.tcpServer.

Autorizzazioni

socket

Tipi

AcceptInfo

Proprietà

  • resultCode

    numero

  • socketId

    number (facoltativo)

    L'ID del socket accettato.

CreateInfo

Proprietà

  • socketId

    numero

    L'ID del socket appena creato.

CreateOptions

NetworkInterface

Proprietà

  • indirizzo

    stringa

    L'indirizzo IPv4/6 disponibile.

  • nome

    stringa

    Il nome sottostante dell'adattatore. Su *nix, in genere è "eth0", "lo" e così via.

  • prefixLength

    numero

    La lunghezza del prefisso

ReadInfo

Proprietà

  • dati

    ArrayBuffer

  • resultCode

    numero

    Il resultCode restituito dalla chiamata read() sottostante.

RecvFromInfo

Proprietà

  • indirizzo

    stringa

    L'indirizzo della macchina remota.

  • dati

    ArrayBuffer

  • porta

    numero

  • resultCode

    numero

    Il resultCode restituito dalla chiamata recvfrom() sottostante.

SecureOptions

Proprietà

SocketInfo

Proprietà

  • connesso

    booleano

    Se il socket sottostante è connesso o meno.

    Per i socket tcp, questo rimarrà vero anche se il peer remoto si è disconnesso. La lettura o la scrittura sul socket potrebbe quindi generare un errore, suggerendo che questo socket deve essere disconnesso tramite disconnect().

    Per i socket udp, questo indica solo se è stato specificato un indirizzo remoto predefinito per la lettura e la scrittura dei pacchetti.

  • localAddress

    stringa facoltativa

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

  • localPort

    number (facoltativo)

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

  • peerAddress

    stringa facoltativa

    Se il socket sottostante è connesso, contiene l'indirizzo IPv4/6 del peer.

  • peerPort

    number (facoltativo)

    Se il socket sottostante è connesso, contiene la porta del peer connesso.

  • socketType

    Il tipo di socket passato. Sarà tcp o udp.

SocketType

Enum

"tcp"

"udp"

TLSVersionConstraints

Proprietà

  • max

    stringa facoltativa

  • min

    stringa facoltativa

    Le versioni minima e massima accettabili di TLS. I valori supportati sono tls1.2 o tls1.3.

    I valori tls1 e tls1.1 non sono più supportati. Se min è impostato su uno di questi valori, verrà bloccato automaticamente su tls1.2. Se max è impostato su uno di questi valori o su qualsiasi altro valore non riconosciuto, verrà ignorato automaticamente.

WriteInfo

Proprietà

  • bytesWritten

    numero

    Il numero di byte inviati o un codice di errore negativo.

Metodi

accept()

chrome.socket.accept(
  socketId: number,
  callback: function,
)
: void

Questo metodo si applica solo ai socket TCP. Registra una funzione di callback da chiamare quando una connessione viene accettata su questo socket del server in ascolto. Listen deve essere chiamato per primo. Se esiste già un callback di accettazione attivo, questo callback verrà richiamato immediatamente con un errore come resultCode.

Parametri

  • socketId

    numero

    L'ID socket.

  • callback

    funzione

    Il parametro callback ha il seguente aspetto:

    (acceptInfo: AcceptInfo) => void

bind()

chrome.socket.bind(
  socketId: number,
  address: string,
  port: number,
  callback: function,
)
: void

Associa l'indirizzo locale al socket. Al momento non supporta il socket TCP.

Parametri

  • socketId

    numero

    L'ID socket.

  • indirizzo

    stringa

    L'indirizzo della macchina locale.

  • porta

    numero

    La porta della macchina locale.

  • callback

    funzione

    Il parametro callback ha il seguente aspetto:

    (result: number) => void

    • risultato

      numero

connect()

chrome.socket.connect(
  socketId: number,
  hostname: string,
  port: number,
  callback: function,
)
: void

Collega il socket alla macchina remota (per un socket tcp). Per un socket udp, questa impostazione definisce l'indirizzo predefinito a cui vengono inviati e da cui vengono letti i pacchetti per le chiamate read() e write().

Parametri

  • socketId

    numero

    L'ID socket.

  • nome host

    stringa

    Il nome host o l'indirizzo IP della macchina remota.

  • porta

    numero

    La porta del computer remoto.

  • callback

    funzione

    Il parametro callback ha il seguente aspetto:

    (result: number) => void

    • risultato

      numero

create()

Promessa
chrome.socket.create(
  type: SocketType,
  options?: CreateOptions,
  callback?: function,
)
: Promise<CreateInfo>

Crea un socket del tipo specificato che si connetterà alla macchina remota specificata.

Parametri

  • tipo

    Il tipo di socket da creare. Deve essere tcp o udp.

  • opzioni

    CreateOptions (facoltativo)

    Opzioni del socket.

  • callback

    funzione facoltativa

    Il parametro callback ha il seguente aspetto:

    (createInfo: CreateInfo) => void

Resi

  • Promise<CreateInfo>

    Chrome 121+

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

destroy()

chrome.socket.destroy(
  socketId: number,
)
: void

Elimina il socket. Ogni socket creato deve essere eliminato dopo l'uso.

Parametri

  • socketId

    numero

    L'ID socket.

disconnect()

chrome.socket.disconnect(
  socketId: number,
)
: void

Scollega la presa. Per i socket UDP, disconnect è una non operazione, ma è sicuro chiamarla.

Parametri

  • socketId

    numero

    L'ID socket.

getInfo()

Promessa
chrome.socket.getInfo(
  socketId: number,
  callback?: function,
)
: Promise<SocketInfo>

Recupera lo stato del socket specificato.

Parametri

  • socketId

    numero

    L'ID socket.

  • callback

    funzione facoltativa

    Il parametro callback ha il seguente aspetto:

    (result: SocketInfo) => void

Resi

  • Promise<SocketInfo>

    Chrome 121+

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

getJoinedGroups()

chrome.socket.getJoinedGroups(
  socketId: number,
  callback: function,
)
: void

Recupera gli indirizzi del gruppo multicast a cui è attualmente unito il socket.

Parametri

  • socketId

    numero

    L'ID socket.

  • callback

    funzione

    Il parametro callback ha il seguente aspetto:

    (groups: string[]) => void

    • gruppi

      string[]

getNetworkList()

Promessa
chrome.socket.getNetworkList(
  callback?: function,
)
: Promise<NetworkInterface[]>

Recupera informazioni sugli adattatori locali su questo sistema.

Parametri

Resi

  • Promise<NetworkInterface[]>

    Chrome 121+

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

joinGroup()

chrome.socket.joinGroup(
  socketId: number,
  address: string,
  callback: function,
)
: void

Unisciti al gruppo multicast e inizia a ricevere pacchetti da quel gruppo. Il socket deve essere di tipo UDP e 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 callback ha il seguente aspetto:

    (result: number) => void

    • risultato

      numero

leaveGroup()

chrome.socket.leaveGroup(
  socketId: number,
  address: string,
  callback: function,
)
: void

Abbandona il gruppo di multicast a cui hai partecipato in precedenza utilizzando joinGroup. Non è necessario uscire dal gruppo di multicast prima di eliminare il socket o uscire. Viene chiamato automaticamente dal sistema operativo.

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 callback ha il seguente aspetto:

    (result: number) => void

    • risultato

      numero

listen()

chrome.socket.listen(
  socketId: number,
  address: string,
  port: number,
  backlog?: number,
  callback: function,
)
: void

Questo metodo si applica solo ai socket TCP. Ascolta le connessioni sulla porta e sull'indirizzo specificati. In questo modo, questo diventa un socket server e le funzioni del socket client (connessione, lettura, scrittura) non possono più essere utilizzate su questo socket.

Parametri

  • socketId

    numero

    L'ID socket.

  • indirizzo

    stringa

    L'indirizzo della macchina locale.

  • porta

    numero

    La porta della macchina locale.

  • backlog

    number (facoltativo)

    Lunghezza della coda di ascolto del socket.

  • callback

    funzione

    Il parametro callback ha il seguente aspetto:

    (result: number) => void

    • risultato

      numero

read()

chrome.socket.read(
  socketId: number,
  bufferSize?: number,
  callback: function,
)
: void

Legge i dati dal socket connesso specificato.

Parametri

  • socketId

    numero

    L'ID socket.

  • bufferSize

    number (facoltativo)

    La dimensione del buffer di lettura.

  • callback

    funzione

    Il parametro callback ha il seguente aspetto:

    (readInfo: ReadInfo) => void

recvFrom()

chrome.socket.recvFrom(
  socketId: number,
  bufferSize?: number,
  callback: function,
)
: void

Riceve i dati dal socket UDP specificato.

Parametri

  • socketId

    numero

    L'ID socket.

  • bufferSize

    number (facoltativo)

    La dimensione del buffer di ricezione.

  • callback

    funzione

    Il parametro callback ha il seguente aspetto:

    (recvFromInfo: RecvFromInfo) => void

secure()

chrome.socket.secure(
  socketId: number,
  options?: SecureOptions,
  callback: function,
)
: void

Avvia una connessione client TLS su un socket client TCP connesso.

Parametri

  • socketId

    numero

    La presa connessa da utilizzare.

  • opzioni

    SecureOptions facoltativo

    Vincoli e parametri per la connessione TLS.

  • callback

    funzione

    Il parametro callback ha il seguente aspetto:

    (result: number) => void

    • risultato

      numero

sendTo()

chrome.socket.sendTo(
  socketId: number,
  data: ArrayBuffer,
  address: string,
  port: number,
  callback: function,
)
: void

Invia dati sul socket UDP specificato all'indirizzo e alla porta specificati.

Parametri

  • socketId

    numero

    L'ID socket.

  • dati

    ArrayBuffer

    I dati da scrivere.

  • indirizzo

    stringa

    L'indirizzo della macchina remota.

  • porta

    numero

    La porta del computer remoto.

  • callback

    funzione

    Il parametro callback ha il seguente aspetto:

    (writeInfo: WriteInfo) => void

setKeepAlive()

chrome.socket.setKeepAlive(
  socketId: number,
  enable: boolean,
  delay?: number,
  callback: function,
)
: void

Attiva o disattiva la funzionalità keep-alive per una connessione TCP.

Parametri

  • socketId

    numero

    L'ID socket.

  • attiva

    booleano

    Se true, attiva la funzionalità keep-alive.

  • delay

    number (facoltativo)

    Imposta i secondi di ritardo tra l'ultimo pacchetto di dati ricevuto e il primo probe keepalive. Il valore predefinito è 0.

  • callback

    funzione

    Il parametro callback ha il seguente aspetto:

    (result: boolean) => void

    • risultato

      booleano

setMulticastLoopbackMode()

chrome.socket.setMulticastLoopbackMode(
  socketId: number,
  enabled: boolean,
  callback: function,
)
: void

Imposta se i pacchetti multicast inviati dall'host al gruppo multicast verranno reindirizzati all'host.

Nota: il comportamento di setMulticastLoopbackMode è leggermente diverso tra Windows e i sistemi di tipo Unix. L'incoerenza si verifica solo quando più di un'applicazione sullo stesso host è unita allo stesso gruppo multicast con impostazioni diverse per la modalità di loopback multicast. Su Windows, le applicazioni con il loopback disattivato non RICEVERANNO i pacchetti di loopback, mentre sui sistemi di tipo Unix, le applicazioni con il loopback disattivato non INVIERANNO i pacchetti di loopback ad altre applicazioni sullo stesso host. Vedi 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à loopback.

  • callback

    funzione

    Il parametro callback ha il seguente aspetto:

    (result: number) => void

    • risultato

      numero

setMulticastTimeToLive()

chrome.socket.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 di Durata (TTL).

  • callback

    funzione

    Il parametro callback ha il seguente aspetto:

    (result: number) => void

    • risultato

      numero

setNoDelay()

chrome.socket.setNoDelay(
  socketId: number,
  noDelay: boolean,
  callback: function,
)
: void

Imposta o cancella TCP_NODELAY per una connessione TCP. L'algoritmo di Nagle verrà disattivato quando viene impostato TCP_NODELAY.

Parametri

  • socketId

    numero

    L'ID socket.

  • noDelay

    booleano

    Se true, disattiva l'algoritmo di Nagle.

  • callback

    funzione

    Il parametro callback ha il seguente aspetto:

    (result: boolean) => void

    • risultato

      booleano

write()

chrome.socket.write(
  socketId: number,
  data: ArrayBuffer,
  callback: function,
)
: void

Scrive i dati sul socket connesso specificato.

Parametri

  • socketId

    numero

    L'ID socket.

  • dati

    ArrayBuffer

    I dati da scrivere.

  • callback

    funzione

    Il parametro callback ha il seguente aspetto:

    (writeInfo: WriteInfo) => void