gpt4 book ai didi

javascript - 通过 socket.io 单击发送事件数据时出现问题

转载 作者:行者123 更新时间:2023-12-03 04:56:46 26 4
gpt4 key购买 nike

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

我的 Node 服务器正在工作,发送按键和鼠标坐标,但是我在映射鼠标单击事件时遇到问题,我正在其他连接和服务器的控制台中注册单击,但似乎我不这样做不太明白如何正确发送事件内容。我无法编写 var data = list: e.classList 并读取 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( );.

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

关于javascript - 通过 socket.io 单击发送事件数据时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42399014/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com