freeCodeCamp/curriculum/challenges/russian/06-information-security-and.../advanced-node-and-express/handle-a-disconnect.russian.md

42 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
id: 589fc831f9fc0f352b528e76
title: Handle a Disconnect
challengeType: 2
videoUrl: ''
localeTitle: Обращение с разъединением
---
## Description
<section id="description"> Напомним, что этот проект строится на следующем стартовом проекте <a href="https://glitch.com/#!/import/github/freeCodeCamp/boilerplate-socketio/">Glitch</a> или клонируется из <a href="https://github.com/freeCodeCamp/boilerplate-socketio/">GitHub</a> . Вы можете заметить, что до сих пор вы только увеличивали количество пользователей. Обращение с отключением пользователя так же просто, как обращение с исходным подключением, за исключением того, что вам нужно прослушивать его для каждого сокета по сравнению со всем сервером. <hr> Для этого добавьте в существующий прослушиватель подключений слушатель, который прослушивает «разъединение» в сокете без передачи данных. Вы можете протестировать эту функциональность, просто зарегистрировавшись на консоли, которую пользователь отключил. <code>socket.on(&#39;disconnect&#39;, () =&gt; { /*anything you want to do on disconnect*/ });</code> Чтобы клиенты постоянно обновляли количество текущих пользователей, вы должны уменьшить currentUsers на 1, когда произойдет отключение, затем выпустите событие «счет пользователя» с обновленным счетчиком! <strong>Заметка</strong> <br> Подобно «разъединению», все другие события, которые сокет может испускать на сервер, должны обрабатываться в подключающемся прослушивателе, где у нас есть «сокет». Представьте свою страницу, когда вы думаете, что у вас все в порядке. </section>
## Instructions
<section id="instructions">
</section>
## Tests
<section id='tests'>
```yml
tests:
- text: Сервер управляет отключением события от сокета
testString: 'getUserInput => $.get(getUserInput("url")+ "/_api/server.js") .then(data => { assert.match(data, /socket.on.*("|")disconnect("|")/gi, ""); }, xhr => { throw new Error(xhr.statusText); })'
- text: Ваш клиент прослушивает событие «счет пользователя»
testString: 'getUserInput => $.get(getUserInput("url")+ "/public/client.js") .then(data => { assert.match(data, /socket.on.*("|")user count("|")/gi, "Your client should be connection to server with the connection defined as socket"); }, xhr => { throw new Error(xhr.statusText); })'
```
</section>
## Challenge Seed
<section id='challengeSeed'>
</section>
## Solution
<section id='solution'>
```js
// solution required
```
</section>