我正在尝试创建一些简单游戏的基本实现(井字游戏是起始项目),这些游戏可以通过互联网玩,而不需要中央服务器。该页面甚至不需要托管,可以在计算机上本地运行,也可以托管在 Web 服务器上。托管游戏时,页面会通知主机他的 IP 地址,然后可以通过任何方式(电话、即时消息等)将其发送给朋友。该朋友可以将 IP 输入或复制/粘贴到加入对话框中,然后就可以玩相关游戏。我希望这两方能够在不安装任何额外软件、也不联系任何类型的中央服务器的情况下做到这一点。
我研究了许多潜在的解决方案,涉及node.js、webrtc、websockets、flash、java等。其中每一个都有一个与之相关的问题,例如需要一个中央服务器,或者要求客户端可能必须下载一些东西他们的计算机上尚未安装该软件,或者仅传输音频和视频而对发送数据消息没有用处。告诉别人他们需要下载 java.. 或让我用 flash 开发应用程序似乎微不足道,但这与我的最终目标背道而驰。
如果我无法完全用 javascript 完成我想要做的事情,那么它就是不可能的。但我不明白为什么不能,因为浏览器能够自行向解析为 IP 或直接解析为 IP 的 URL 发送和接收文本数据。欢迎其他解决方案,但如果这是不可能做到的,那确实应该这样做。
我想要做的确切要求的简单解释是:
应使用完全免费(如啤酒)的技术。 (没有Flash,我意识到Flash播放器的网络应用程序可以免费编码,但是层中的点对点需要注册测试版密钥,假设我可以免费获得,则不一定永远免费。)
没有外部服务器或虚假的点对点。 (同样,在基于闪存或统一的解决方案中,只要您使用他们的中央服务器,就可以实现点对点的模仿)
没有客户端下载(当然,大多数人都安装了 java 或 flash,但很多人没有安装,而 java 的下载量相当大,对于不懂计算机的用户来说并不友好。它现在甚至尝试安装工具栏。除此之外,许多我的用户根本不愿意下载任何东西,包括 java 或 unity。正如已经提到的,它们有与该项目相关的自己的问题)
总之,如果ajax可以向指定的IP发送请求并监听响应..为什么我不能在纯js中获得简单的点对点消息传递?或者我可以吗?
我不需要托管一个完整的网络服务器或任何类型的单独应用程序或插件来发送和接收数据。
我错过了什么吗?
在 pubnub 被推荐后,我看了那里并留下了部分印象。然而,我最终令人难以置信地偶然发现了我正在寻找的东西。 RTCDataChannel 就是答案。这个网站 https://webrtc-experiment.appspot.com/docs/rtc-datachannel-for-beginners.html最终证明我想要的东西是可能的。浏览器对此功能的支持虽然很小,但正在不断增长,整个考验增强了我对浏览器社区对点对点应用程序日益增长的支持的信心。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)