如何提高nodejs / socket的性能?

时间:2015-06-12 09:44:27

标签: javascript node.js performance websocket socket.io

我为一个小游戏设置了一个服务器。客户端以一定的间隔将其移动数据发送到服务器。服务器还以特定间隔向客户端发送关于其他玩家的数据。如果我添加更多玩家,性能会变差。我现在该如何改善表现?

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

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

或者您有其他想法吗?

是否有调试工具来检查哪些服务器操作会降低服务器速度?

1 个答案:

答案 0 :(得分:1)

您实际上可以通过三种方式提高绩效:

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

您可以通过以下方式实现这一目标:

2 - 发送您需要的内容。

  • 如果你需要移动播放器,你只需要发送位置。
  • 如果您需要弹出一个新播放器,请发送整个对象并将其存储在客户端。
  • ...

3 - 降低频率。

您无需发送每个职位。 例如,您可以每秒发送一个玩家位置。在客户端上,您将需要添加一个动画,该动画将玩家移动到持续一秒钟动画的位置。 Here's an article that well explains game networking techniques