如何提高nodejs / socket的IO性能?

我已经build立了一个小游戏的服务器。 客户端以一定的时间间隔向服务器发送移动数据。 服务器也会以一定的时间间隔向客户端发送关于其他玩家的数据。 如果我添加更多的球员,performance会变得更糟。 我现在如何改善performance?

发送单个属性而不是对象会提高速度吗?

我可以通过使用更大的间隔来创build更稳定的性能吗?

或者你有其他的想法?

有没有一个debugging工具来检查哪些服务器操作减慢服务器下来?

实际上你可以通过三种方式提高性能:

1 – 减less您在套接字上发送的指令的大小。

你可以通过以下方式来实现

  • 最小化你的JSON
  • 使用比JSON小的MessagePack

2 – 发送你所需要的。

  • 如果您需要移动播放器,您只需要发送位置。
  • 如果您需要popup一个新玩家,则发送完整的对象并将其存储在客户端。

3 – 降低频率。

你不需要发送每个职位。 例如,您可以每秒发送一个玩家位置。 在客户端上,您将需要添加一个animation,该animation将持续一秒的animation移动到该位置。 这里有一篇文章很好地解释了游戏联网技术