首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与socket.io的Javascript游戏。服务器滞后

与socket.io的Javascript游戏。服务器滞后
EN

Stack Overflow用户
提问于 2017-08-16 19:14:50
回答 2查看 879关注 0票数 0

你好,我正在用socket.io和node.js做游戏来学习javascript。我会问你它应该如何工作。现在所有球员的位置,球员的子弹和其他东西都存储在服务器上,服务器将其发送到客户端。客户端获取数据时,将所有内容绘制在屏幕上。一切都还好吗?当我在免费的node.js服务器上部署server.js文件时,我得到了滞后,但当我在我的PC上运行它时,我没有得到它。这是服务器故障吗?

我可以粘贴链接到存储库,如果它会有帮助,并感谢您的帮助。

EN

回答 2

Stack Overflow用户

发布于 2017-08-16 19:31:00

确保您部署到的服务器允许websocket连接。如果socket.io不能使用websocket,它将通过http切换到长轮询。这可能会导致您体验到的滞后。

您还可以在浏览器web控制台中检查网络流量,并查看数据包是通过websocket还是通过http发送的。

票数 2
EN

Stack Overflow用户

发布于 2017-08-16 20:03:43

我在存储库中查看了你的代码,发现它有点幼稚。我的主要建议是:

1) 不要经常发送更新的数据。你正在尝试每隔33ms发送一次客户端数据,但即使对于本机游戏来说,这也有点重。每秒发送数据,用于同步世界状态,并在客户端推断它(只是视觉上的部分,而不是内部逻辑...例如,模拟子弹飞行和碰撞,但不是销毁对象,它是服务器作业)。

2) 仅发送新数据。尝试仅发送差异。这是非常棘手和困难的,但值得努力。您可以将其与p.1结合使用,例如,每5秒发送一次内部状态,每0.5秒发送一次与先前状态不同的状态。

3) 只发送事件。如果子弹飞50帧比他们直接是不需要发送50个位置。只需发送"Bullet #uniqid以+1,0的速度从XY开始飞行“,然后发送"Bullet #uniqid blowup at X,Y and destroyed list of id's”

很抱歉我的英语不好,希望你能理解我的建议。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45712053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档