如何使用node.js发出hit.item

时间:2014-02-09 08:13:32

标签: node.js socket.io

我在我的脚本中检测到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 );
}

1 个答案:

答案 0 :(得分:0)

如果我错了,请纠正我,但是你是从客户那里发出事件drawFill还是在客户端接收?此外,socket.io以text或JSON的形式发出数据,即属性:值形式。因此,如果您的商品有多个属性,那么您真的需要将其分解。 假设您的项目有两个属性,例如颜色,名称等,并且您想要发送到服务器,那么您最好这样做:

var data = {color: target.color,
            name: target.name,
            sesId: sessionid}

并以

发出
io.emit( 'drawFill', data);
}

这将转到socket.io服务器。