单击socket.io

时间:2017-02-22 18:01:31

标签: javascript node.js sockets amazon-web-services socket.io

原谅我,我过去几天一直在学习节点和js,来自C#/ unity,一切都与我所知道的有点不同。我正在制作一个协作鼓机,我有90%的工作时间:http://ec2-54-194-29-66.eu-west-1.compute.amazonaws.com:9000/

我有节点服务器工作,按键发送和鼠标合作,但我有一个映射鼠标点击事件的问题,我在其他连接和服务器的控制台注册点击,但似乎我不很容易理解正确发送事件的内容。我不能写var data = list:e.classList和read data.list看看同样的事情吗?

这里的代码我一直在努力工作,但是我无法读取属性错误:

    function newMouseOn(data)
    {
        console.log("Is this working Click On?" + data.target);
        data.list.add('active');
        //clickPlayOn(data);
        data.target.play();
    }

    function newMouseOff(data)
    {
        console.log("Is this working ClickOff?" + data.target);
        //clickPlayOff(data);
        data.list.remove('active');
    }   

socket.on('mouseOn', newMouseOn);
socket.on('mouseOff', newMouseOff);


  function clickPlayOn(e)
    {
       var data = {
         id: e.target.id,
         timeStamp: e.timeStamp,
         type: e.type,
         target: e.target,
         list: e.classList
       }
        socket.emit('mouseOn', data);
        e.target.classList.add('active');
        e.target.play();
    }

    function clickPlayOff(e)
    {
      var data =
      {
        id: e.target.id,
        timeStamp: e.timeStamp,
        type: e.type,
        target: e.target,
        list: e.classList
        }
        socket.emit('mouseOff', data);
        e.target.classList.remove('active');
    }


server side: 

  socket.on('mouseOn', MouseClick);
  socket.on('mouseOff', MouseClicked);


function MouseClick(data)
  {
    socket.broadcast.emit('mouseOn', data);
    console.log(data);
  }

  function MouseClicked(data)
  {
    socket.broadcast.emit('mouseOff', data);
    console.log(data);
  }

我原本试图发出e或e.target而不是那个数据结构,但这似乎没有用。有没有人对我失踪的东西有任何想法? (除了大脑)

1 个答案:

答案 0 :(得分:1)

您收到的对象(data.target.play();)没有方法,它作为JSON传输然后转换为对象,因此您不能调用new DotInfo(i, j, generator.nextInt(NUMBER_OF_COLORS)+1); 之类的任何方法。

如果您需要任何方法,则必须在收到对象时添加它们。