|
18 | 18 |
|
19 | 19 | Основная причина: он проще. Многим приложениям не требуется вся мощь `WebSocket`. |
20 | 20 |
|
21 | | -Если нам нужно получать поток данных с сервера: неважно, сообщения в чате или же цены для магазина - вот в чем хорош `EventSource`. К тому же, он поддерживает автоматическое переподключение, которое, используя `WebSocket`, нам бы пришлось поддерживать самим. Кроме того, мы используем старый добрый HTTP, а не новый протокол. |
| 21 | +Если нам нужно получать поток данных с сервера: неважно, сообщения в чате или же цены для магазина - вот в чём хорош `EventSource`. К тому же, он поддерживает автоматическое переподключение, которое, используя `WebSocket`, нам бы пришлось поддерживать самим. Кроме того, мы используем старый добрый HTTP, а не новый протокол. |
22 | 22 |
|
23 | 23 | ## Получение сообщений |
24 | 24 |
|
@@ -113,7 +113,7 @@ let eventSource = new EventSource(...); |
113 | 113 | eventSource.close(); |
114 | 114 | ``` |
115 | 115 |
|
116 | | -Также переподключение не произойдет, если в ответе указан неверный `Content-Type` или его статус отличается от 301, 307, 200 и 204. Браузер создаст событие `"error"` и не будет восстанавливать соединение. |
| 116 | +Также переподключение не произойдёт, если в ответе указан неверный `Content-Type` или его статус отличается от 301, 307, 200 и 204. Браузер создаст событие `"error"` и не будет восстанавливать соединение. |
117 | 117 |
|
118 | 118 | ```smart |
119 | 119 | Переоткрыть закрытое соединение невозможно. Если необходимо снова подключиться, объявите новый `EventSource`. |
@@ -148,7 +148,7 @@ id: 3 |
148 | 148 |
|
149 | 149 | ## Статус подключения: readyState |
150 | 150 |
|
151 | | -У объект `EventSource` есть свойство `readyState`, устанавливаемое в одно из трех значений: |
| 151 | +У объект `EventSource` есть свойство `readyState`, устанавливаемое в одно из трёх значений: |
152 | 152 |
|
153 | 153 | ```js no-beautify |
154 | 154 | EventSource.CONNECTING = 0; // подключение или переподключение |
@@ -186,7 +186,7 @@ data: Боб |
186 | 186 |
|
187 | 187 | ```js |
188 | 188 | eventSource.addEventListener('join', event => { |
189 | | - alert(`${event.data} зашел`); |
| 189 | + alert(`${event.data} зашёл`); |
190 | 190 | }); |
191 | 191 |
|
192 | 192 | eventSource.addEventListener('message', event => { |
@@ -254,17 +254,17 @@ let source = new EventSource(url, [credentials]); |
254 | 254 | : Соединение установлено. |
255 | 255 |
|
256 | 256 | `error` |
257 | | -: Потеряно соединение (произойдет переподключение) или произошла фатальная ошибка. Мы можем обратиться к свойству `readyState`, чтобы проверить происходит ли переподключение. |
| 257 | +: Потеряно соединение (произойдёт переподключение) или произошла фатальная ошибка. Мы можем обратиться к свойству `readyState`, чтобы проверить происходит ли переподключение. |
258 | 258 |
|
259 | 259 | Сервер может выставить собственное событие с помощью `event:`. Такие события должны быть обработаны с помощью `addEventListener`, а не `on<event>`. |
260 | 260 |
|
261 | 261 | ### Формат ответа сервера |
262 | 262 |
|
263 | | -Сервер посылает сообщения, разделенные двойным переносом строки `\n\n`. |
| 263 | +Сервер посылает сообщения, разделённые двойным переносом строки `\n\n`. |
264 | 264 |
|
265 | 265 | Часть сообщения может начинаться с: |
266 | 266 |
|
267 | | -- `data:` -- тело сообщения, несколько `data` подряд интерпретируются как одно сообщение, разделенные переносами строк `\n`. |
| 267 | +- `data:` -- тело сообщения, несколько `data` подряд интерпретируются как одно сообщение, разделённые переносами строк `\n`. |
268 | 268 | - `id:` -- обновляет свойство `lastEventId`, отправляемое в `Last-Event-ID` при переподключении. |
269 | 269 | - `retry:` -- рекомендованная задержка перед переподключением в миллисекундах. Не может быть установлена с помощью JavaScript. |
270 | 270 | - `event:` -- пользовательское имя события, должно быть указано перед `data:`. |
0 commit comments