3.1 KiB
3.1 KiB
id | title | challengeType | videoUrl | localeTitle |
---|---|---|---|---|
589fc831f9fc0f352b528e75 | Communicate by Emitting | 2 | Comunique-se emitindo |
Description
Comece adicionando uma variável para acompanhar os usuários antes de onde você está ouvindo as conexões.
var currentUsers = 0;
Agora, quando alguém se conecta, você deve incrementar a contagem antes de emitir a contagem, assim você desejará adicionar o incrementador dentro do ouvinte de conexão. ++currentUsers;
Finalmente, após incrementar a contagem, você deve emitir o evento (ainda dentro do ouvinte de conexão). O evento deve ser chamado de 'contagem de usuários' e os dados devem ser apenas 'usuários atuais'. io.emit('user count', currentUsers);
Agora você pode implementar uma maneira para o seu cliente escutar este evento! Da mesma forma que ouvir uma conexão no servidor, você usará a palavra - chave on .
socket.on ('user count', function (data) { console.log (dados); });Agora tente carregar seu aplicativo e autenticar e você verá no console do seu cliente '1' representando a contagem atual de usuários! Tente carregar mais clientes e autenticar para ver o número subir. Envie sua página quando achar que está certo.
Instructions
Tests
tests:
- text: currentUsers é 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: Servidor emite a contagem atual de usuários em cada nova conexão
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: Seu cliente está ouvindo o evento "contagem de usuários"
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