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