javascript - 如何提高 nodejs/socket io 性能?

标签 javascript node.js performance websocket socket.io

我已经为一个小游戏搭建了一个服务器。客户端以一定的时间间隔向服务器发送他们的移动数据。服务器也会在一定的时间间隔内向客户端发送有关其他玩家的数据。如果我添加更多玩家,性能会变得更差。我现在该如何提高性能?

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

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

或者您有其他想法?

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

最佳答案

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

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

您可以通过以下方式实现:

2 - 只发送您需要的内容。

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

3 - 降低频率。

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

关于javascript - 如何提高 nodejs/socket io 性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30800025/

相关文章:

javascript - 为什么这个 javascript url 验证器失败?

javascript - 在 sails.js 中返回异步响应

javascript - 将 CSS border-radius % 值动态转换为 px

node.js - 错误!找不到模块 'encoding'

node.js - 如何查询文档中应包含and子句的文档?

objective-c - 快速枚举比嵌套枚举中的 for 循环慢(带有测试结果)?

algorithm - 通过不直接处理它的中间方法传递相同的变量

javascript - React Router 问题 : why history. 推送更改 url 但不更新组件

node.js - 使用AWS IOT和SNS的Web推送通知

C++ 哪个函数更快?重复赋值或重复创建