Я пытаюсь настроить интерфейс чата на сайте с помощью nodejs. Мне нужно обновить список logged_in_user после аутентификации пользователя. Я использую этот код в качестве ссылкиОтправка события входа от сервера к клиенту
https://github.com/amirrajan/nodejs-chat
io.sockets.on('connection', (socket) => {
socket.on('sendchat', (data) => {
io.sockets.emit('updatechat', socket.username, data);
});
Как вы можете видеть на «соединение» событие событие updatechat срабатывает. На стороне клиента (public/app.js) список чатов обновляется при получении события updatechat.
Мне нужно сделать то же самое, но после того, как клиент будет аутентифицирован. Могу ли я каким-то образом настроить объект сокета, чтобы вызвать событие на «вход в» событие
Это мой код
app.get('/authenticate',function(request,response)
{
var db = couch.db.use('users');
var email = request.query['email'];
var pass = request.query['password'];
db.get(email,{email:email},function(err,body){
if(err)
console.log(err);
else
{
var user_pass = body['password'];
var name = body['name'];
console.log(user_pass);
if(pass == user_pass)
{
eventEmitter.emit('login',name);
response.render('pages/dashboard',{user:body['name']});
}
}
});
// And on 'login' event
eventEmitter.on('login', function(name)
{
// ?????? Broadcast the new user to all logged in users to update the chatlist
});
Я попытался перенаправить зарегистрированных пользователей на другой порт и использовать гнездо " connection ". Такие работы, но я хочу знать, есть ли другой подход, который я мог бы использовать.
Как вы проверяете подлинность? Использование Ajax или нормальной загрузки полной страницы? – Molda