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à
-
tlsVersion
TLSVersionConstraints facoltativo
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 tramitedisconnect()
.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
oudp
.
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
otls1.3
.I valori
tls1
etls1.1
non sono più supportati. Semin
è impostato su uno di questi valori, verrà bloccato automaticamente sutls1.2
. Semax
è 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
-
acceptInfo
-
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()
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
oudp
. -
opzioni
CreateOptions (facoltativo)
Opzioni del socket.
-
callback
funzione facoltativa
Il parametro
callback
ha il seguente aspetto:(createInfo: CreateInfo) => void
-
createInfo
-
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()
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
-
risultato
-
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()
chrome.socket.getNetworkList(
callback?: function,
): Promise<NetworkInterface[]>
Recupera informazioni sugli adattatori locali su questo sistema.
Parametri
-
callback
funzione facoltativa
Il parametro
callback
ha il seguente aspetto:(result: NetworkInterface[]) => void
-
risultato
-
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
-
readInfo
-
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
-
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
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
-
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
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.