设置socket.io从cookie发出值

时间:2018-11-27 10:53:33

标签: javascript node.js cookies socket.io

我正在尝试创建一个聊天室网站,现在,当您加载该网站时,您会看到以下输入字段,要求您输入这样的名称:enter image description here 输入名称并按下旁边的按钮“继续聊天”后,它将使用以下方式设置用户名:

function setUsername() {
    var textbox = document.getElementById("name");
    var txtboxval = textbox.value;
    if(textbox.value.length <= 20 && textbox.value.length >= 4){
      socket.emit('setUsername', document.getElementById('name').value);
      setCookie("username", txtboxval, 30);
      socket.on('userExists', function(data) {
        document.getElementById('messages').innerHTML = data;
      });
    }
    else{
        alert("Nimen on oltava vähintään 4 kirjainta pitkä");
        return false;
      }
    };

只要符合要求,它就会将名称设置为您输入的名称,并将其显示在您发送的邮件中,还将值设置为cookie。

在下一页上,它将显示以下消息:enter image description here

现在这仍然可以正常工作,接下来,当我重新加载页面时,它将显示一个弹出窗口,原因是已设置Cookie enter image description here

问题出在这部分之后,它将转到具有此功能的消息发送页面:

function checkCookie() {
      var user = getCookie("username");
      if (user != "") {
          alert("Welcome again " + user);
          setUsername2();
          document.body.innerHTML = '<div class="wrapper"><div class="messagebox"><input type = "text" id = "message" placeholder = "Kirjoita viestisi tähän">\
          <button type = "button" id="sending" name = "button" onclick = "sendMessage()">Send</button></div>\
          <div id = "message-container"></div></div>';
      }
    }

setUsername2函数:

  function setUsername2() {
    socket.emit('setUsername', user);
  }

此后,它应该加载并显示与cookie消息中提到的名称相同的名称,但它只会返回“ [object Object]”作为名称:enter image description here

,并且只会在控制台中显示为{} enter image description here

这里出了什么问题,为什么用户无法正确地从Cookie进行设置,这是否有可能是为什么?

请务必询问是否有不清楚的地方,我会尽力解释清楚。

0 个答案:

没有答案