4.4 KiB
4.4 KiB
id | title | challengeType | videoUrl | localeTitle |
---|---|---|---|---|
589fc831f9fc0f352b528e75 | Communicate by Emitting | 2 | Общение через Emitting |
Description
Начните с добавления переменной, чтобы отслеживать пользователей непосредственно перед тем, где вы сейчас слушаете подключения.
var currentUsers = 0;
Теперь, когда кто-то подключается, вы должны увеличить счетчик перед исчислением счета, поэтому вам нужно добавить инкремент в прослушиватель соединения. ++currentUsers;
Наконец, после увеличения счетчика, вы должны испустить событие (все еще внутри прослушивателя соединения). Событие должно быть названо «user count», и данные должны быть просто «currentUsers». io.emit('user count', currentUsers);
Теперь вы можете реализовать способ для вашего клиента слушать это событие! Аналогично прослушиванию соединения на сервере вы будете использовать ключевое слово on .
socket.on ('user count', function (data) { console.log (данные); });Теперь попробуйте загрузить приложение и выполнить проверку подлинности, и вы должны увидеть в своей клиентской консоли «1», представляющий текущий счет пользователя! Попробуйте загрузить больше клиентов и пройти проверку подлинности, чтобы увидеть, как число увеличивается. Представьте свою страницу, когда вы думаете, что у вас все в порядке.
Instructions
Tests
tests:
- text: currentUsers определяется
testString: 'getUserInput => $.get(getUserInput("url")+ "/_api/server.js").then(data => {assert.match(data, /currentUsers/gi, "You should have variable currentUsers defined");}, xhr => { throw new Error(xhr.statusText); })'
- text: Сервер испускает текущий счетчик пользователей при каждом новом соединении
testString: 'getUserInput => $.get(getUserInput("url")+ "/_api/server.js") .then(data => { assert.match(data, /io.emit.*("|")user count("|").*currentUsers/gi, "You should emit "user count" with data currentUsers"); }, 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); })'
Challenge Seed
Solution
// solution required