我正在做一个学习node.js的项目,并寻求一些关于如何实时同步用户数据的建议。
假设你有一个2D矩形地图(大约600x400),上面有许多占据不同x,y位置的玩家。每个用户都可以使用箭头键进行导航,并以某种基本方式与其他用户进行交互。考虑到这将在HTTP上进行,什么样的设计模式最适合处理和同步用户数据,以提供最流畅、最敏捷的体验呢?
我可以想到几个选项,但希望得到更多的想法/澄清:
客户端将位置数据发送到服务器,服务器将所有位置分发给所有客户端,屏幕用结果渲染。重复此过程。缺点是客户端由于数据往返所需的时间而滞后,但优点是他们与所有用户同步。
客户端不断渲染它认为自己的位置,将位置数据发送到服务器,服务器将所有位置分发给所有客户端,然后从客户端数据中校正屏幕渲染。优点是响应更快,缺点是稍微失去了同步。
两者的混合,但是我们不使用(x,y)坐标,而是使用一个向量[上一个x/y和时间,当前的x/y和时间,建议的时间间隔内的x/y],然后可以用来绘制不断变化的弹道路径。这似乎很难实现。
有什么指针吗?