--- id: 589fc831f9fc0f352b528e75 title: Communicate by Emitting challengeType: 2 videoUrl: '' localeTitle: Comunique-se emitindo --- ## Description
Como lembrete, este projeto está sendo construído sobre o seguinte projeto inicial no Glitch , ou clonado a partir do GitHub . Emit é o modo mais comum de comunicação que você usará. Quando você emite algo do servidor para 'io', você envia o nome e os dados de um evento para todos os soquetes conectados. Um bom exemplo desse conceito seria emitir a contagem atual de usuários conectados cada vez que um novo usuário se conecta!
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
```yml 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
```js // solution required ```