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
socketTipi
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à
-
tlsVersion
TLSVersionConstraints facoltativo
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 tramitedisconnect().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à
tcpoudp.
SocketType
Enum
"tcp"
"udp"
TLSVersionConstraints
Proprietà
-
max
stringa facoltativa
-
min
stringa facoltativa
Le versioni TLS minima e massima accettabili. I valori supportati sono
tls1.2otls1.3.I valori
tls1etls1.1non sono più supportati. Seminè impostato su uno di questi valori, verrà limitato automaticamente atls1.2. Semaxè 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
callbackha il seguente aspetto:(acceptInfo: AcceptInfo) => void
-
acceptInfo
-
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
callbackha 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
callbackha il seguente aspetto:(result: number) => void
-
risultato
numero
-
create()
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
tcpoudp. -
opzioni
CreateOptions facoltativo
Le opzioni del socket.
-
callback
funzione elemento facoltativo
Il parametro
callbackha il seguente aspetto:(createInfo: CreateInfo) => void
-
createInfo
-
Resi
-
Promise<CreateInfo>
Chrome 121 e versioni successiveLe 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()
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
callbackha il seguente aspetto:(result: SocketInfo) => void
-
risultato
-
Resi
-
Promise<SocketInfo>
Chrome 121 e versioni successiveLe 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
callbackha il seguente aspetto:(groups: string[]) => void
-
gruppi
string[]
-
getNetworkList()
chrome.socket.getNetworkList(
callback?: function,
): Promise<NetworkInterface[]>
Recupera informazioni sugli adattatori locali su questo sistema.
Parametri
-
callback
funzione elemento facoltativo
Il parametro
callbackha il seguente aspetto:(result: NetworkInterface[]) => void
-
risultato
-
Resi
-
Promise<NetworkInterface[]>
Chrome 121 e versioni successiveLe 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
callbackha 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
callbackha 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
callbackha 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
callbackha il seguente aspetto:(readInfo: ReadInfo) => void
-
readInfo
-
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
callbackha il seguente aspetto:(recvFromInfo: RecvFromInfo) => void
-
recvFromInfo
-
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
callbackha 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
callbackha il seguente aspetto:(writeInfo: WriteInfo) => void
-
writeInfo
-
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
callbackha 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
callbackha 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
callbackha 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
callbackha 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.