Ultimamente estou usando, socket.io para desenvolver um projeto, e estou tendo um certo problema, basicamente, estou fazendo alguns teste, e num deles, eu gostaria de criar um programa, onde o usuário poderia, digita apenas um nome.
Na primeira vez o programa imprimi “Nome registrado”, e se o usuário tentar inserir outro ele diz “Não pode mais!”, até ai tudo bem. Mas o problema, está quando um novo usuário entra, pois quando ele tenta registra um nome, o programa diz “Não pode mais”, ou seja, como se ele já tivesse digitado um nome e já tentei, usar tudo que em teoria deveria resolver, mais não resolve.
Meu código do cliente:
<script>
function clique(){
var nome = document.getElementById('nome');
var socket = io();
socket.emit('n',nome)
socket.on('n', function(nome){
console.log(nome.saida);
})
}
</script>
No lado do servidor:
const express = require("express");
const { createServer } = require("http");
const { Server } = require("socket.io");
const app = express();
const httpServer = createServer(app);
const io = new Server(httpServer, { /* options */ });
var nomes = {foi:false}
app.get('/',(req,res)=>{
res.sendFile(__dirname+"/index.html");
})
io.on("connection", (socket) => {
socket.on('n',function(dado){
if(nomes.foi == false){
nomes.foi = true;
socket.emit('n',{saida:"Nome registrado"})
}else{
socket.emit('n',{saida:"Não pode mais!"})
}
})
});
httpServer.listen(4000);
