Веб-розетка - это постоянное открытое соединение.Вам нужно только выполнить аутентификацию один раз при подключении к веб-сокету.
Просто один раз отправьте свой cookie-файл для входа на сайт node.js и сохраните его на сервере со ссылкой на подключение к сокету.Затем обрабатывайте только сообщения от прошедших проверку пользователей и передавайте их только проверенным пользователям.
Проблема заключается в том, что пользователи на стороне клиента могут легко подделать этот файл cookie, поскольку узел не обращается к php, чтобы убедиться, что это действительный файл cookie входа в систему.*
Пример использования сейчас .
предупреждение псевдокода
// server.js
everyone.now.joinChat = function(cookie) {
chat.add(this, cookie);
}
everyone.now.serverMessage = function(message) {
if (chat.hasUser(this)) {
chat.broadcast(message);
}
}
chat = (function() {
var users = [];
return {
"add": function(client) {
users.push(client);
},
"hasUser": function(client) {
return users.some(function(user) {
return user === client;
});
},
"broadcast": function(message) {
users.each(function(user) {
user.clientMessage(message);
});
}
}
}());
// client.js
$(function() {
now.joinChat($.cookie("login"));
$("#send").click(function() {
now.serverMessage($(this).data("message"));
});
now.clientMessage = function(message) {
$("#messages").append($("<span></span>").text(message));
}
});