使用nodeJS和socket.io作为练习 我建立了一个由iphone控制的鼠标光标原型, 在浏览器视口上移动。 而已。它有效,但性能非常糟糕。光标是生涩的,切碎的...它没有顺利移动......正如我在终端中看到的那样发射,有时会卡住......
我正在考虑使用类似下面的代码,但仍然没有达到最佳状态。
setInterval(function() {
socket.emit('sendposition', x, y);
}, 25);
我想知道thatere是否是提高性能的最佳做法。 如果表现如此糟糕,你怎么能建立一个在线多人游戏呢?
谢谢!
答案 0 :(得分:0)
我尝试使用socket.send
,而不是socket.emit
,听起来......听起来更好......不完美但方式更好......
答案 1 :(得分:-1)
网络流量中可能存在抖动,这是正常的,特别是对于网络保证按顺序传送的TCP流量,因此当一个数据包延迟时,其后的所有其他数据包都必须等待。
我建议您使用UDP进行尝试,每个数据报都包含X,Y位置的增量。这样,如果一些数据包出现故障,鼠标仍然会到达同一目的地,如果丢弃了一些数据包,那么其他数据包仍会通过并轻推光标。