Я работал с рабочим пространством cloud9.io для колледжа, пытаясь развить некоторые из моих навыков веб-разработки. Я действительно ценю это с разбивкой для меня. Я знаю, что это просто, я просто не могу понять, что я делаю здесь неправильно.
Цель: изменить сервер чата, чтобы пользователь мог либо отправить сообщение всем, используя имя «Все», либо указать имя, и отправить сообщение только пользователю с таким именем
У меня естьхорошая часть, я просто понятия не имею, где я терплю неудачу
// Message Received
socket.on('message', function (msg) {
var text = String(msg || '');
if (!text)
return;
socket.get('name', function (err, name) {
var data = {
name: name,
recipient: recipient,
text: text
};
// If this is a private message
if (name!='All')
{
// Private Message
data.message = "Private Message for: " + data.name;
broadcast('message', data); // Broadcast only to recipient
broadcast('message', data);
//messages.push(data);
}
else // broadcast to all!
{
broadcast('message', data); // Broadcast to Everyone!
messages.push(data);
}
});
});
socket.on('identify', function (name) {
socket.set('name', String(name || 'Anonymous'), function (err) {
updateRoster();
});
});
socket.on('recip', function(recipient){
socket.set('recipient', String(recipient || 'All'), function(err) {});
});
});
function updateRoster() {
async.map(
sockets,
function (socket, callback) {
socket.get('name', callback);
},
function (err, names) {
broadcast('roster', names);
}
);
}
function broadcast(event, data) {
// Check recipient here
console.log("Message sent to: " + data.name);
sockets.forEach(function (socket) {
socket.emit(event, data);
});
}