我正在尝试创建一些简单游戏的基本实现(以井字棋为起始项目),这些游戏可以在不需要中央服务器的情况下通过互联网进行玩耍。该页面甚至不需要托管,可以在本地机器上运行,也可以托管在Web服务器上。当托管游戏时,页面会向主机提供他的IP地址,然后可以通过任何方法(电话、即时消息等)将其发送给朋友。那个朋友将输入或复制/粘贴IP到加入对话框中,并能够玩这个游戏。我希望这两个人能够在不安装任何其他软件且不联系任何类型的中央服务器的情况下完成这项操作。
我已经研究了许多潜在的解决方案,包括node.js、webrtc、websocket、flash、java等。每一个都存在与之相关的问题,例如需要一个中央服务器,或需要客户端可能需要下载未安装在他们电脑上的东西,或只传输音频和视频而不能用于发送数据消息。告诉某人需要下载Java似乎很微不足道,或者要我使用Flash开发应用程序,但这与我的最终目标背道而驰。
如果完全在JavaScript中执行我想要做的事情不可能,那么就不可能了。但我不明白为什么不能这样做,因为浏览器本身能够将文本数据发送和接收到解析为IP或直接到IP的URL。其他解决方案也受欢迎,但如果无法实现此操作,那么应该。
我尝试做的确切要求的简单解释是:
应使用完全免费的技术(免费的意思是没有任何费用,如Flash,我意识到可以免费编写针对Flash播放器的Web应用程序,但在stratum中进行的点对点需要注册Beta密钥,即使我可以免费获得该密钥,也不会永远保持免费)。
没有外部服务器或虚假的对等。 (再次提及类似于Flash或基于Unity的解决方案,其中可以模拟点对点,只要您使用其中央服务器)
没有客户端下载(当然,大多数人都已经安装了Java或Flash,但许多人并没有,而且Java是一个相当庞大的下载,对于电脑小白用户来说也不友好。它甚至尝试安装工具栏。此外,我的许多用户甚至不愿意下载任何东西,包括Java或Unity,这些本身就与该项目有关的问题已经提到)
总之,如果Ajax可以向指定的IP发送请求并监听响应...为什么我不能在纯JS中获得简单的P2P消息传递?还是可以的吗?
我不应该需要托管完整的Web服务器或任何类型的单独应用程序或插件来发送和接收数据。
我是否漏掉了什么?