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 è stata ritirata a favore delle API sockets.udp, sockets.tcp e sockets.tcpServer.

Autorizzazioni

socket

Tipi

AcceptInfo

Proprietà

  • resultCode

    numero

  • socketId

    number optional

    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 sarà "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

    Indica 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, indicando che questo socket deve essere disconnesso tramite disconnect().

    Per i socket udp, questo indica semplicemente 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 optional

    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 optional

    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 TLS minima e massima accettabili. 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à limitato automaticamente a tls1.2. Se max è impostato su uno di questi valori o su un altro valore non riconosciuto, verrà ignorato senza avviso.

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 viene accettata una connessione su questo socket server di 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

    Il socketId.

  • 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 per il socket. Al momento non supporta il socket TCP.

Parametri

  • socketId

    numero

    Il socketId.

  • 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

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

Parametri

  • socketId

    numero

    Il socketId.

  • nome host

    stringa

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

  • porta

    numero

    La porta della macchina remota.

  • callback

    funzione

    Il parametro callback ha il seguente aspetto:

    (result: number) => void

    • risultato

      numero

create()

Promise
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

    Le opzioni del socket.

  • callback

    funzione elemento facoltativo

    Il parametro callback ha il seguente aspetto:

    (createInfo: CreateInfo) => void

Resi

  • Promise<CreateInfo>

    Chrome 121 e versioni successive

    Le promise sono supportate solo per Manifest V3 e versioni successive, mentre 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

    Il socketId.

disconnect()

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

Disconnette il socket. Per i socket UDP, disconnect non è un'operazione, ma è sicuro da chiamare.

Parametri

  • socketId

    numero

    Il socketId.

getInfo()

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

Recupera lo stato del socket specificato.

Parametri

  • socketId

    numero

    Il socketId.

  • callback

    funzione elemento facoltativo

    Il parametro callback ha il seguente aspetto:

    (result: SocketInfo) => void

Resi

  • Promise<SocketInfo>

    Chrome 121 e versioni successive

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

getJoinedGroups()

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

Recupera gli indirizzi dei gruppi multicast a cui è attualmente collegato il socket.

Parametri

  • socketId

    numero

    Il socketId.

  • callback

    funzione

    Il parametro callback ha il seguente aspetto:

    (groups: string[]) => void

    • gruppi

      string[]

getNetworkList()

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

Recupera informazioni sugli adattatori locali su questo sistema.

Parametri

Resi

  • Promise<NetworkInterface[]>

    Chrome 121 e versioni successive

    Le promise sono supportate solo per Manifest V3 e versioni successive, mentre 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

    Il socketId.

  • 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 multicast a cui hai eseguito l'accesso in precedenza utilizzando joinGroup. Non è necessario uscire dal gruppo multicast prima di eliminare il socket o uscire. Questo metodo 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

    Il socketId.

  • 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, il socket diventa un socket server e le funzioni del socket client (connect, read, write) non possono più essere utilizzate su questo socket.

Parametri

  • socketId

    numero

    Il socketId.

  • indirizzo

    stringa

    L'indirizzo della macchina locale.

  • porta

    numero

    La porta della macchina locale.

  • backlog

    number optional

    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

    Il socketId.

  • bufferSize

    number optional

    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

    Il socketId.

  • bufferSize

    number optional

    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

    Il socket connesso 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 i dati sul socket UDP specificato all'indirizzo e alla porta specificati.

Parametri

  • socketId

    numero

    Il socketId.

  • dati

    ArrayBuffer

    I dati da scrivere.

  • indirizzo

    stringa

    L'indirizzo della macchina remota.

  • porta

    numero

    La porta della macchina remota.

  • 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

    Il socketId.

  • attiva

    booleano

    Se true, attiva la funzionalità keep-alive.

  • delay

    number optional

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

    Il socketId.

  • attivato

    booleano

    Indica se attivare la modalità di 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

    Il socketId.

  • ttl

    numero

    Il valore della 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

    Il socketId.

  • noDelay

    booleano

    Se impostato su 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

    Il socketId.

  • dati

    ArrayBuffer

    I dati da scrivere.

  • callback

    funzione

    Il parametro callback ha il seguente aspetto:

    (writeInfo: WriteInfo) => void