3.2 KiB
3.2 KiB
id | title | challengeType | videoUrl | localeTitle |
---|---|---|---|---|
589fc831f9fc0f352b528e75 | Communicate by Emitting | 2 | Comunicar emitiendo |
Description
Comience agregando una variable para hacer un seguimiento de los usuarios justo antes de que esté escuchando las conexiones.
var currentUsers = 0;
Ahora, cuando alguien se conecta, debe incrementar el conteo antes de emitir el conteo, por lo que deseará agregar el incrementador dentro de la escucha de conexión. ++currentUsers;
Finalmente, después de incrementar el conteo, debe emitir el evento (aún dentro del oyente de conexión). El evento debe denominarse 'cuenta de usuarios' y los datos solo deben ser los 'usuarios actuales'. io.emit('user count', currentUsers);
¡Ahora puede implementar una manera para que su cliente escuche este evento! De manera similar a escuchar una conexión en el servidor, usará la palabra clave on .
socket.on ('cuenta de usuario', función (datos) { console.log (datos); });¡Ahora intente cargar su aplicación y autenticar y debería ver en la consola de su cliente '1' que representa el conteo actual de usuarios! Intente cargar más clientes y autenticar para ver cómo aumenta el número. Envía tu página cuando creas que lo has hecho bien.
Instructions
Tests
tests:
- text: currentUsers está definido
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: El servidor emite el conteo de usuarios actual en cada nueva conexión
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: Tu cliente está escuchando el evento 'cuenta de usuario'
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