Skip to content

Commit bb5e72c

Browse files
authored
Update article.md
1 parent cb64a32 commit bb5e72c

File tree

1 file changed

+14
-14
lines changed

1 file changed

+14
-14
lines changed

5-network/11-websocket/article.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ Adesso approfondiamo un po'.
7373

7474
Non appena viene istanziato `new WebSocket(url)`, il websocket tenta immediatamente di stabilire una connessione.
7575

76-
Dureante la connessione, il browser (utilizzando degli headers appositi) chiede al server: "Supporti i WebSocket?" e se il server risponde "Si", allora la conversazione continua con il protocollo WebSocket, che non è per nulla HTTP.
76+
Durante la connessione, il browser (utilizzando degli headers appositi) chiede al server: "Supporti i WebSocket?" e se il server risponde "Si", allora la conversazione continua con il protocollo WebSocket, che non è per nulla HTTP.
7777

7878
![](websocket-handshake.svg)
7979

@@ -97,7 +97,7 @@ Sec-WebSocket-Version: 13
9797
- `Sec-WebSocket-Version` -- versione di protocollo del WebSocket, 13 è quella corrente.
9898

9999
```smart header="L'handsnake del WebSocket non può essere emulato."
100-
Non è possibile utilizzare `XMLHttpRequest` oppure `fetch` per fare questo tipo di richieste HTTP, dal momento che a JavaScript non è peremessa la creazione di questi headers.
100+
Non è possibile utilizzare `XMLHttpRequest` oppure `fetch` per fare questo tipo di richieste HTTP, dal momento che a JavaScript non è premessa la creazione di questi headers.
101101
```
102102
Se il server acconsente allo switch in WebSocket, dovrebbe rispondere con un codice 101:
103103

@@ -110,11 +110,11 @@ Sec-WebSocket-Accept: hsBlbuDTkk24srzEOTBUlZAlC2g=
110110

111111
Qui `Sec-WebSocket-Accept` è `Sec-WebSocket-Key` ricodificato usando un algoritmo speciale. Il browser lo usa per assicurarsi che la risposta sia corrispondente alla richiesta.
112112

113-
In seguito, i dati vengono trasferiti usando il protocollo WebSocket, presto ne vedremo vedremo la struttura ("frames"). E questo non ha niente a che vedere con HTTP.
113+
In seguito, i dati vengono trasferiti usando il protocollo WebSocket, presto ne vedremo la struttura ("frames"). E questo non ha niente a che vedere con HTTP.
114114

115115
### Estensioni e subprotocolli
116116

117-
Ci possono essere gli headers aggiuntivi `Sec-WebSocket-Extensions` e `Sec-WebSocket-Protocol` i quali descrivo etensioni e subprotocolli.
117+
Ci possono essere gli headers aggiuntivi `Sec-WebSocket-Extensions` e `Sec-WebSocket-Protocol` i quali descrivo estensioni e subprotocolli.
118118

119119
Ad esempio:
120120

@@ -179,7 +179,7 @@ Una chiamata `socket.send(body)` permette che il `body` possa essere sia in form
179179

180180
Questo è settato dalla proprietà `socket.bufferType`, di default è `"blob"`, così i dati binari arrivano come oggetti `Blob`.
181181

182-
[Blob](info:blob) &egrave; un oggetto bianrio di alto livello, si integra direttamente con `<a>`, `<img>` e altri tag, cos&igrave; &egrave; un default puro. Ma per processamenti binari, per accedere ai singoli data bytes, possiamo cambiarlo in`"arraybuffer"`:
182+
[Blob](info:blob) &egrave; un oggetto binario di alto livello, si integra direttamente con `<a>`, `<img>` e altri tag, cos&igrave; &egrave; un default puro. Ma per operazioni binarie, per accedere ai singoli data bytes, possiamo cambiarlo in`"arraybuffer"`:
183183

184184

185185
```js
@@ -192,7 +192,7 @@ socket.onmessage = (event) => {
192192
## Rate limiting
193193

194194
Immagina che la nostra app abbia tantissimi dati da inviare. Ma che l'utente abbia una connessione molto lenta, magari internet su rete mobile e fuori citt&agrave;.
195-
Potremmo chiamare `socket.send(data)` in continuazione. Per&ograve; i dati verrano bufferizzati (immagazzinati) in memoria ed invaiti solo quando una connessione abbastanza veloce lo permetter&agrave;.
195+
Potremmo chiamare `socket.send(data)` in continuazione. Per&ograve; i dati verranno bufferizzati (immagazzinati) in memoria ed inviati solo quando una connessione abbastanza veloce lo permetter&agrave;.
196196
197197
La propriet&agrave; `socket.bufferedAmount` immagazzina i dati che sono bufferizzati in un dato momento, in attesa di inviarli tramite la rete.
198198
@@ -211,15 +211,15 @@ setInterval(() => {
211211
212212
## Chiusura della connessione
213213
214-
Normalmente, quando una delle parti desidera chiudere una connessione (sia il borwser che il server hanno ognuno gli stessi diritti), inviano un "connection close frame", un frame di chiusura connessione con un codice numerico e una descrizione testuale della motivazione.
214+
Normalmente, quando una delle parti desidera chiudere una connessione (sia il browser che il server hanno ognuno gli stessi diritti), inviano un "connection close frame", un frame di chiusura connessione con un codice numerico e una descrizione testuale della motivazione.
215215
216216
Il metodo per farlo &egrave;:
217217
```js
218218
socket.close([code], [reason]);
219219
```
220220
221221
- `code` &egrave; un codice specifico del WebSocket (opzionale)
222-
- `reason` &egrave; una stringa che descrive la motivazione della chiusrua (opzionale)
222+
- `reason` &egrave; una stringa che descrive la motivazione della chiusura (opzionale)
223223
224224
Le altre parti ottengono il codice e la motivazione all'interno dell'handler `close`, ad esempio:
225225
@@ -241,7 +241,7 @@ I valori pi&ugrave; comuni sono:
241241

242242
Esistono altri codice come:
243243

244-
- `1001` -- la parte non risulta raggiungbile, ad esempio, il server si sta spegnendo o il browser ha chiuso la pagina,
244+
- `1001` -- la parte non risulta raggiungibile, ad esempio, il server si sta spegnendo o il browser ha chiuso la pagina,
245245
- `1009` -- il messaggio &egrave; troppo grande per essere processato,
246246
- `1011` -- errore non previsto nel server,
247247
- ...e cos&igrave; via.
@@ -288,7 +288,7 @@ HTML: abbiamo bisogno di un tag `<form>` per inviare i messaggi e di un tag `<di
288288
```
289289

290290
Da JavaScript vogliamo tre cose:
291-
1. Aprire la connesione.
291+
1. Aprire la connessione.
292292
2. Gestire il form con l'invio -- `socket.send(message)` per il messaggio.
293293
3. Gestire il messaggio in arrivo -- accodarlo all'elemento `div#messages`.
294294

@@ -330,7 +330,7 @@ const clients = new Set();
330330

331331
http.createServer((req, res) => {
332332
// qui gestiamo solamente le connessioni websocket
333-
// in progetti veri dovremmo avere ache fare con altro codice per gestire richeiste che non non-websocket
333+
// in progetti veri dovremmo avere anche fare con altro codice per gestire richieste che non non-websocket
334334
wss.handleUpgrade(req, req.socket, Buffer.alloc(0), onSocketConnect);
335335
});
336336

@@ -358,7 +358,7 @@ Ecco l'esempio funzionante:
358358

359359
Puoi anche scaricarlo (pulsante in alto a destra nell'iframe) ed eseguirlo localmente. Solamente non dimenticare di installare [Node.js](https://nodejs.org/en/) e di fare partire `npm install ws` prima di avviarlo.
360360

361-
## Conclusioni
361+
## Riepilogo
362362

363363
WebSocket sono una maniera moderna di avere connessioni persistenti browser-server.
364364

@@ -378,8 +378,8 @@ Eventi:
378378
- `error`,
379379
- `close`.
380380

381-
I WebSocket di per s&egrave; non includono la riconnesione, l'autenticazione e molti altri meccanismi di alto livello. Per quello, ci sono una infinit&agrave; di librerie, ma &egrave; anche possibile implementare queste funzionalit&agrave; manualmente.
381+
I WebSocket di per s&egrave; non includono la riconnessione, l'autenticazione e molti altri meccanismi di alto livello. Per quello, ci sono una infinit&agrave; di librerie, ma &egrave; anche possibile implementare queste funzionalit&agrave; manualmente.
382382

383-
A volte, per integrare i WebSocket in progetti gi&agrave; esistenti,la gente esegue un WebSocket server in parallelo con il server HTTP principale, e condividono un unico database. Le richieste ai WebSocket usano `wss://ws.site.com`, un sottodominio (subdoman) che conduce al server WebSocket, mentre `https://site.com` va al server HTTP principale.
383+
A volte, per integrare i WebSocket in progetti gi&agrave; esistenti,la gente esegue un WebSocket server in parallelo con il server HTTP principale, e condividono un unico database. Le richieste ai WebSocket usano `wss://ws.site.com`, un sottodominio (subdomain) che conduce al server WebSocket, mentre `https://site.com` va al server HTTP principale.
384384

385385
Sicuramente, sono possibili altre modalit&agrave; di integrazione.

0 commit comments

Comments
 (0)