我已经为一个小游戏搭建了一个服务器。客户端以一定的时间间隔向服务器发送他们的移动数据。服务器也会在一定的时间间隔内向客户端发送有关其他玩家的数据。如果我添加更多玩家,性能会变得更差。我现在该如何提高性能?
发送单个属性而不是对象会提高速度吗?
我可以通过使用更大的间隔来创造更稳定的性能吗?
或者您有其他想法?
是否有调试工具可以检查哪些服务器操作会降低服务器速度?
最佳答案
实际上,您可以通过三种方式提高性能:
1 - 减少您在套接字上发送的指令的大小。
您可以通过以下方式实现:
- 最小化您的 JSON
- 使用MessagePack比 JSON 小
2 - 只发送您需要的内容。
- 如果需要移动播放器,只需要发送位置即可。
- 如果您需要弹出一个新玩家,请发送完整的对象并将其存储在客户端。
- ...
3 - 降低频率。
您不需要发送每个职位。 例如,您可以每秒发送一个玩家位置。然后,您需要在客户端添加一个动画,将玩家移动到持续一秒的动画位置。 Here's an article that well explains game networking techniques
关于javascript - 如何提高 nodejs/socket io 性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30800025/