簡體   English   中英

單擊socket.io發送事件數據的問題

[英]issue with sending event data with click over socket.io

原諒我,最近幾天我一直在學習node和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而不是該數據結構,但這似乎沒有用。 有人對我缺少的東西有任何想法嗎? (除了大腦)

您收到的對象( data )沒有方法,它作為JSON傳輸然后轉換為對象,因此您不能調用任何方法,例如data.target.play();

如果需要任何方法,則必須在接收對象時添加它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM