javascript - 为在线多人游戏设置点对点网络

标签 javascript network-programming p2p

我正在使用 javascript 和 html 创建一个回合制多人策略游戏,我正处于创建多人游戏功能的阶段。我查看了选项,由于一次最多只能有 8 个玩家,而且它是回合制的,所以一次只有一个玩家可以操纵游戏,我得出结论,点对点将是一个很好的解决方案。但是我找不到任何文章详细说明如何设置这样的东西。

我发现的所有教程和文章都解释了点对点网络是什么、挑战和可能的解决方案,但没有详细说明如何在对等点之间建立连接等。我发现的文章/教程确实围绕着正在下载到用户计算机的 p2p 客户端。我不希望用户必须下载任何东西。我希望用户能够在网站上设置游戏,并使用加入游戏的玩家的连接信息,通过浏览器中加载的 javascript 点对点运行它。也许我不了解点对点的工作原理?这可能吗?

我正在寻找任何可以帮助我实现这一目标的文章、教程,或者如果有人可以解释,我不会拒绝解释..或者如果我误解了事情是如何工作的并且这是不可能的,那会很好也知道。

最佳答案

有很多选择。但最终,如果计算机不在同一网络上,您将需要一个位于中间的服务器来帮助处理路由和引入新连接。

  1. NodeJS 服务器打开与每个客户端的网络套接字,可以协商通信以及将数据从服务器推送到客户端(您需要)。
  2. WebRTC 是一种带有 api 的协议(protocol),适用于最新的浏览器和网站,例如:http://www.rtcmulticonnection.org/有大量资源和库可帮助您入门。
  3. 您可以使用无数消息服务器中的任何一个,例如 XMPP、STUN、ActiveMQ(我最喜欢的)等,并且在使用网络套接字、rtc 等时可以遵循典型的发布/订阅模式。

关于javascript - 为在线多人游戏设置点对点网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30403263/

相关文章:

javascript - 如何在 Javascript 中调用祖父类的 setter

javascript - jQuery 可拖动 div 周围的区域变暗?

javascript - AngularJS 复选框过滤不起作用

sqlite - sqlite 数据库的点对点复制

browser - 无需外部服务器的NAT穿越

cassandra - apache cassandra 中的 gossip 协议(protocol)有什么用?

javascript - AngularJS:向 ng-repeat 内的图像添加切换功能

python - PyBlueZ : Create multiple client connections

java - 检查网络上java发送/接收的数据类型

Java Servlet 说文件不存在