javascript - 使用node.js上传多人游戏

标签 javascript node.js socket.io appfog

我在 node.js 中制作了一个游戏并上传了它..它应该是每秒 30 - 60 帧..
现在我测试它,它运行缓慢..我的意思是在本地网络中它运行得更流畅

服务器距离并不远。那么有什么技巧可以提高 fps 吗?

xhr-poolingwebsockets 哪个更好,哪个更快?
游戏是这样设置 xhr-pooling 的 -

io.set('transports', ['xhr-polling']);

游戏托管在appfog

如果需要我可以发布游戏链接!

最佳答案

这里的问题是你想做什么?如果服务器为每一帧向客户端发送一条消息,那么您所说的基本上是不可能的——无法可靠地保证互联网上低于 16 毫秒(60 fps)或 33 毫秒(30 fps)的网络延迟。它可能在本地网络上工作,并且几乎肯定可以在本地计算机上工作,但不能在互联网上工作。如果您需要从客户端获取信息到服务器并在下一帧中返回,则往返延迟需要那么低,包括双方的处理。由于 xhr-polling 和 websockets 都使用 TCP,情况会变得更糟,因为一个缓慢/丢失的数据包将暂停其后的所有内容,直到它最终出现。

您确实需要尽可能地将渲染与服务器解耦,以便在浏览器中制作可行的游戏。网络速度不够快。

关于javascript - 使用node.js上传多人游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17930340/

相关文章:

node.js - Sailsjs req.setLocale 外部 Controller

flask - 使用flask-socketio频繁中断套接字连接

javascript - Node JS 数组、Foreach、Mongoose、同步

javascript - 透明选项在带有nodeIntegration的 Electron 中不起作用

JavaScript 设置变量?

javascript - form.submit() 不包括发送提交按钮

node.js - 如何在windows上运行linux终端命令?

node.js - socketio Node 为另一个命名空间发出

node.js - 如何确保每个用户只打开一个 socket.io 连接?

javascript - 验证 JavaScript 中的 11 位字符串输入