如何提高nodejs / socket的IO性能?
我已经build立了一个小游戏的服务器。 客户端以一定的时间间隔向服务器发送移动数据。 服务器也会以一定的时间间隔向客户端发送关于其他玩家的数据。 如果我添加更多的球员,performance会变得更糟。 我现在如何改善performance?
发送单个属性而不是对象会提高速度吗?
我可以通过使用更大的间隔来创build更稳定的性能吗?
或者你有其他的想法?
有没有一个debugging工具来检查哪些服务器操作减慢服务器下来?
实际上你可以通过三种方式提高性能:
1 – 减less您在套接字上发送的指令的大小。
你可以通过以下方式来实现
- 最小化你的JSON
- 使用比JSON小的MessagePack
2 – 发送你所需要的。
- 如果您需要移动播放器,您只需要发送位置。
- 如果您需要popup一个新玩家,则发送完整的对象并将其存储在客户端。
- …
3 – 降低频率。
你不需要发送每个职位。 例如,您可以每秒发送一个玩家位置。 在客户端上,您将需要添加一个animation,该animation将持续一秒的animation移动到该位置。 这里有一篇文章很好地解释了游戏联网技术