Node.js / angular.js: как я могу изменить data.name, чтобы просто отправить выбранному получателю.или все - PullRequest
0 голосов
/ 03 марта 2019

Я работал с рабочим пространством 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);
  });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...