我刚刚开始使用nodes.js进行编程,但是第一个示例存在问题
任何人都可以帮助我解决问题,以及如何通过console.log自己检查它,例如chrome开发人员工具。
我的小脚本平稳运行了大约一分钟,然后FPS缓慢下降到零方向。 因此,我认为我的代码中存在过载 在客户端,我尝试了请求动画框架和setInternal相同的问题。因此,我认为问题出在服务器端(以及计算机的前端)
这是我的代码的摘录
App.js
setInterval(function(){
var spliceArray = Array();
objcnt = w.objects.length;
var i=0;
while (i < objcnt)
{
w.objects[i].update();
if(w.objects[i].hitpoints <= 0 )
spliceArray.push(i);
i++;
}
for(var k = 0;k<spliceArray.length;k++)
w.objects.splice(spliceArray[k],1);
for(var i in SOCKET_LIST){
var socket = SOCKET_LIST[i];
//socket.emit('newClientship',allobjects[0]);
socket.emit('newClientship',{x:allobjects[0].xtype.x,y:allobjects[0].xtype.y});
}
},1000/25);
Index.html
setInterval(function(){
updateFps();
ctx.font="150px Arial";
ctx.fillStyle = "white";
socket.on('newClientship',function(data){
ctx.clearRect(0,0,canvas.width,canvas.height);
ctx.fillText(12,data.x,data.y);
});
drawFps(200,20) ;
},1000/25);
我试图在服务器端创建对象,然后仅将x和y的值发送给客户端
答案 0 :(得分:0)
在index.html
setInterval(function(){
…
socket.on('newClientship',function(data){…
…
},1000/25);
您要一遍又一遍地重新分配事件侦听器。也许这是socket.io
的问题,只分配一次监听器,每次数据到达时都会调用它。如果您所有的updateFPS()
和画布绘制都不是瓶颈,那么应该可以解决此问题。