同一网络上的点对点web API
Peer to Peer web API on the same network
我正在和朋友制作一款基于网页的游戏,两个人在两台不同的电脑上使用chrome或firefox玩游戏。如果两台电脑在同一wifi网络上,我如何在两台电脑之间传输游戏数据?这有什么api吗?HTML5对此有什么帮助吗?
注:我没有服务器
您可以使用WebRTC的数据通道:
http://www.webrtc.org/
或者你可以设置一个服务器并使用WebSockets:
https://en.wikipedia.org/wiki/WebSocket
缺点:
对于WebRTC,您将需要一个STUN服务器,据我所知,它将交换您使用的ip地址。其余的通信是点对点的。
目前在WebRTC上的例子很少,因为它仍在开发中。只有Chrome和Firefox(夜间)支持该协议。
html5rocks对此写了一个很好的介绍(在这里粘贴太多了):
http://www.html5rocks.com/en/tutorials/webrtc/basics/
对于WebSockets,你需要一个作为集线器的web服务器。然而,这很容易设置,因为它使用标准的HTTP协议。如果你是在。net平台上,你可以使用SignalR,它很容易启动和运行。
注意,对于WebSocket,它最初必须是同源的。然而,这是可以规避的(CORS)。通常,使用WebSockets的脚本位于同一网页内,并且还将与加载它的相同域进行通信。
还有其他的WebSockets选项可以使用node.js, socket。Io, ruby等等
更新:如果你没有服务器点对点将很难与纯html5。你必须有一些东西来协商连接。
你可以通过在你的电脑上设置一个本地服务器,并允许其他人直接连接到它来解决这个问题。
请看下面的例子(免费开源TURN/STUN服务器):
http://code.google.com/p/rfc5766-turn-server/
注意:这个服务器的目标是*NIX。如果你用的是Windows,我找不到免费的解决方案。商业解决方案是另一个选择。
有几种方法可以解决你的问题,哪种方法最有效取决于你的游戏需求和你如何构建它。
我不知道有什么技术可以直接从一个浏览器发送到另一个浏览器,而不需要某种服务器。
看看HTML5 Websockets: http://www.tutorialspoint.com/html5/html5_websocket.htm
或者你可以为你的游戏存储数据,并让游戏客户端在每次回合或计时时从数据库中检索必要的信息。
- 试图让我的点对点游戏'捕捉到'最近的点
- Javascript闭包对点击事件的疑问
- 代码对点击事件的影响
- HTML表单对点击“输入”按钮没有响应
- 堆积条形图和散点对齐
- jQuery Bounce 对点击没有 jQuery UI 的影响
- 在 Javascript 中对点对象数组进行排序
- 对点击问题做出反应
- 通过jquery创建的按钮don't对点击做出响应
- 同一网络上的点对点web API
- 是否可以使用ICE直接连接,然后在WebRTC中直接进行点对点信令?
- 如何使用PHP, MySQL DB和JavaScript模拟点对点通信通道
- 点对点连接在Windows商店应用程序(HTML/JS)
- 如何建立浏览器对浏览器(点对点)连接?
- 有没有办法从浏览器运行服务器或点对点?
- SignalR点对点(js to js)通信
- 使用WebRTC/Alternative的点对点1080p直播
- 点对点会议重制,WebRTC
- 如何在web浏览器之间建立点对点连接
- 为在线多人游戏设置点对点网络