Skip to content

Commit 0ae3182

Browse files
author
smyagkov
committed
few changes in acticle.md
1 parent 14dcc40 commit 0ae3182

1 file changed

Lines changed: 11 additions & 8 deletions

File tree

5-network/08-websocket/article.md

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ socket.onerror = function(error) {
6363

6464
Так вы увидите события `открыто` -> `сообщение` -> `закрыто`.
6565

66-
В общем-то, всё мы уже можем общаться по протоколу WebSocket. Просто, не так ли?
66+
В общем-то, всё, мы уже можем общаться по протоколу WebSocket. Просто, не так ли?
6767

6868
Теперь давайте поговорим более подробно.
6969

@@ -118,7 +118,7 @@ Sec-WebSocket-Accept: hsBlbuDTkk24srzEOTBUlZAlC2g=
118118

119119
- `Sec-WebSocket-Extensions: deflate-frame` означает, что браузер поддерживает сжатие данных. Расширение -- это что-то, связанное с передачей данных, а не сами данные.
120120

121-
- `Sec-WebSocket-Protocol: soap, wamp` означает, что мы будем передавать не только произвольные данные, но и данные в протоколах [SOAP](http://en.wikipedia.org/wiki/SOAP) или WAMP (""The WebSocket Application Messaging Protocol" -- "протокол обмена сообщениями WebSocket приложений"). Подпротоколы WebSocket регистрируются в [каталоге IANA](http://www.iana.org/assignments/websocket/websocket.xml).
121+
- `Sec-WebSocket-Protocol: soap, wamp` означает, что мы будем передавать не только произвольные данные, но и данные в протоколах [SOAP](http://en.wikipedia.org/wiki/SOAP) или WAMP (The WebSocket Application Messaging Protocol" -- "протокол обмена сообщениями WebSocket приложений"). Подпротоколы WebSocket регистрируются в [каталоге IANA](http://www.iana.org/assignments/websocket/websocket.xml).
122122

123123
Заголовок `Sec-WebSocket-Extensions` отправляется браузером автоматически со списком всевозможных расширений, которые он поддерживает.
124124

@@ -171,15 +171,15 @@ Sec-WebSocket-Protocol: soap
171171

172172
В браузере мы напрямую работаем только с текстовыми и бинарными фреймами.
173173

174-
**Метод WebSocket `.send()` может отправлять и текстовые и двоичные данные.**
174+
**Метод WebSocket `.send()` может отправлять и текстовые и бинарные данные.**
175175

176-
Вызов , `socket.send(body)` принимает `body` в виде строки или любом бинарном формате включая `Blob`, `ArrayBuffer` и другие. Дополнительных настроек не требуется, просто отправляем.
176+
Вызов `socket.send(body)` принимает `body` в виде строки или любом бинарном формате включая `Blob`, `ArrayBuffer` и другие. Дополнительных настроек не требуется, просто отправляем.
177177

178-
**При получении данных, текст всегда поступает в виде строки. А для двоичных данных мы можем выбрать один из двух форматов: `Blob` или `ArrayBuffer`.**
178+
**При получении данных, текст всегда поступает в виде строки. А для бинарных данных мы можем выбрать один из двух форматов: `Blob` или `ArrayBuffer`.**
179179

180-
Значение по умолчанию `socket.bufferType` -- `"blob"`, поэтому двоичные данные поступают в Blobs.
180+
Значение по умолчанию `socket.bufferType` -- `"blob"`, поэтому бинарные данные поступают в виде `Blob`.
181181

182-
[Blob](info:blob) -- это высокоуровневый двоичный объект, он напрямую интегрируется с `<a>`, `<img>` и другими тегами. Это значение по умолчанию. Но для обработки данных, если требуется доступ к отдельным байтам, мы можем изменить его на `"arraybuffer"`:
182+
[Blob](info:blob) -- это высокоуровневый бинарный объект, он напрямую интегрируется с `<a>`, `<img>` и другими тегами. Это значение по умолчанию. Но для обработки данных, если требуется доступ к отдельным байтам, мы можем изменить его на `"arraybuffer"`:
183183

184184
```js
185185
socket.bufferType = "arraybuffer";
@@ -220,6 +220,9 @@ setInterval(() => {
220220
socket.close([code], [reason]);
221221
```
222222

223+
- `code` -- специальный WebSocket-код закрытия (не обязателен).
224+
- `reason` -- строка с описанием причины закрытия (не обязательна).
225+
223226
Затем противоположная сторона в обработчике события `close` получит и код `code` и причину `reason`, например:
224227

225228
```js
@@ -318,7 +321,7 @@ socket.onmessage = function(event) {
318321

319322
Серверный алгоритм действий будет таким:
320323
1. Создать `clients = new Set()` -- набор сокетов.
321-
2. Для каждого принятого websocket: `clients.add(socket)` и добавить обработчик `onmessage` для приёма сообщений.
324+
2. Для каждого принятого websocket: `clients.add(socket)` и добавить обработчик события `onmessage` для приёма сообщений.
322325
3. Когда сообщение получено: перебрать клиентов `clients` и отправить его всем.
323326
4. Когда подключение закрыто: `clients.delete(socket)`.
324327

0 commit comments

Comments
 (0)