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

Autorizzazioni

socket

Tipi

AcceptInfo

Proprietà

  • resultCode

    numero

  • socketId

    number facoltativo

    L'ID della presa accettata.

CreateInfo

Proprietà

  • socketId

    numero

    L'ID della presa appena creata.

CreateOptions

NetworkInterface

Proprietà

  • indirizzo

    stringa

    L'indirizzo IPv4/6 disponibile.

  • nome

    stringa

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

  • prefixLength

    numero

    La lunghezza del prefisso

ReadInfo

Proprietà

  • dati

    ArrayBuffer

  • resultCode

    numero

    Il codice risultato restituito dalla chiamata read() sottostante.

RecvFromInfo

Proprietà

  • indirizzo

    stringa

    L'indirizzo della macchina remota.

  • dati

    ArrayBuffer

  • porta

    numero

  • resultCode

    numero

    Il codice risultato restituito dalla chiamata recvfrom() sottostante.

SecureOptions

Proprietà

SocketInfo

Proprietà

  • connesso

    booleano

    Indica se la socket sottostante è connessa o meno.

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

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

  • localAddress

    stringa facoltativa

    Se la socket sottostante è associata o connessa, contiene il relativo indirizzo IPv4/6 locale.

  • localPort

    number facoltativo

    Se la socket sottostante è associata o collegata, contiene la relativa porta locale.

  • peerAddress

    stringa facoltativa

    Se la socket sottostante è connessa, contiene l'indirizzo IPv4/6 del peer.

  • peerPort

    number facoltativo

    Se la socket sottostante è connessa, 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 minime e massime 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à bloccato in silenzio su tls1.2. Se max è impostato su uno di questi valori o su qualsiasi altro valore non riconosciuto, verrà ignorato senza alcun messaggio.

WriteInfo

Proprietà

  • bytesWritten

    numero

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

Metodi

accept()

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

Questo metodo si applica solo alle socket TCP. Registra una funzione di callback da chiamare quando viene accettata una connessione su questo socket del server in ascolto. Devi prima chiamare Listen. Se è già presente un callback di accettazione attivo, questo 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,
)

Associa l'indirizzo locale per la socket. Al momento non supporta la 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,
)

Collega la presa alla macchina remota (per una presa tcp). Per una socket udp, viene impostato 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,
)

Crea una presa 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 di socket.

  • callback

    function facoltativa

    Il parametro callback ha il seguente aspetto:

    (createInfo: CreateInfo) => void

Resi

  • Promise<CreateInfo>

    Chrome 121 e versioni successive

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

destroy()

chrome.socket.destroy(
  socketId: number,
)

Distruisce la presa. Ogni socket creato deve essere distrutto dopo l'uso.

Parametri

  • socketId

    numero

    L'ID socket.

disconnect()

chrome.socket.disconnect(
  socketId: number,
)

Scollega la presa. Per le socket UDP, disconnect è un'operazione non valida, ma è possibile chiamarla in sicurezza.

Parametri

  • socketId

    numero

    L'ID socket.

getInfo()

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

Recupera lo stato della presa specificata.

Parametri

  • socketId

    numero

    L'ID socket.

  • callback

    function facoltativa

    Il parametro callback ha il seguente aspetto:

    (result: SocketInfo) => void

Resi

  • Promise<SocketInfo>

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

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

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

Parametri

  • socketId

    numero

    L'ID socket.

  • callback

    funzione

    Il parametro callback ha il seguente aspetto:

    (groups: string[]) => void

    • gruppi

      stringa[]

getNetworkList()

Promessa
chrome.socket.getNetworkList(
  callback?: function,
)

Recupera le informazioni sugli adattatori locali su questo sistema.

Parametri

Resi

  • Promise<NetworkInterface[]>

    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.socket.joinGroup(
  socketId: number,
  address: string,
  callback: function,
)

Unisciti al gruppo multicast e inizia a ricevere pacchetti da quel gruppo. La socket deve essere di tipo UDP e deve essere associata a una porta locale prima di chiamare questo metodo.

Parametri

  • socketId

    numero

    L'ID socket.

  • 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

leaveGroup()

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

Esci dal gruppo multicast a cui hai aderito in precedenza utilizzando joinGroup. Non è necessario uscire dal gruppo multicast prima di distruggere la presa o uscire. Viene chiamato automaticamente dal sistema operativo.

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

Questo metodo si applica solo alle socket TCP. Ascolta le connessioni sulla porta e sull'indirizzo specificati. Di fatto, si tratta di un socket server e le funzioni del socket client (connect, read, write) 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,
)

Legge i dati dalla presa collegata specificata.

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

Riceve i dati dalla socket UDP specificata.

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

Avvia una connessione client TLS su una socket client TCP connessa.

Parametri

  • socketId

    numero

    La presa collegata da utilizzare.

  • opzioni

    SecureOptions facoltativo

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

Invia i dati sulla porta UDP specificata 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,
)

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

Parametri

  • socketId

    numero

    L'ID socket.

  • attiva

    booleano

    Se true, abilita la funzionalità keep-alive.

  • delay

    number facoltativo

    Imposta il ritardo in secondi 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,
)

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

  • abilitata

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

Imposta la durata (TTL) dei pacchetti multicast inviati al gruppo multicast.

La chiamata di questo metodo non richiede autorizzazioni di multicast.

Parametri

  • socketId

    numero

    L'ID socket.

  • ttl

    numero

    Il valore 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,
)

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

Scrive i dati sulla presa connessa specificata.

Parametri

  • socketId

    numero

    L'ID socket.

  • dati

    ArrayBuffer

    I dati da scrivere.

  • callback

    funzione

    Il parametro callback ha il seguente aspetto:

    (writeInfo: WriteInfo) => void