我在我的脚本中检测到hit.item并使用它来填充网格的正方形。
我的脚本的绘制部分正在工作,但是当我发出该项时,它不起作用。
我想hit.item是一个结构,我需要在发送之前将其分解?
这是猜测 - 这是我的第一个node.js脚本!
任何人都能发光吗?
io.on('drawFill', function( data ) {
console.log('drawFill received:' , data.target);
drawFill(data.target);
function onMouseMove(event){
var hit = project.hitTest(event.point);
if (hit){
drawFill(hit.item);
emitFill(hit.item);
console.log('drawto',hit.item);
} else {
console.log("no hit");
}
}
function drawFill(item){
item.fillColor = "#00F8FF";
//console.log(item);
}
function emitFill (target) {
// Each Socket.IO connection has a unique session id
var sessionId = io.socket.sessionid;
// An object to describe the circle's draw data
var data = {
target : target
};
// send a 'drawCircle' event with data and sessionId to the server
io.emit( 'drawFill', data, sessionId );
}
答案 0 :(得分:0)
如果我错了,请纠正我,但是你是从客户那里发出事件drawFill
还是在客户端接收?此外,socket.io以text或JSON的形式发出数据,即属性:值形式。因此,如果您的商品有多个属性,那么您真的需要将其分解。
假设您的项目有两个属性,例如颜色,名称等,并且您想要发送到服务器,那么您最好这样做:
var data = {color: target.color,
name: target.name,
sesId: sessionid}
并以
发出io.emit( 'drawFill', data);
}
这将转到socket.io服务器。