最终我想要的是构建一个在浏览器中运行的Javascript应用程序,并且能够与在同一网络内的其他机器上运行相同Javascript应用程序的其他用户进行通信。我一直在阅读和摆弄Websockets和webRTC,但它们都需要在连接过程的某个阶段的服务器。我也看过PeerJs和OpenPeer,但它们似乎也依赖于webbrtc,而webbrtc又需要一个中间服务器来设置连接。
如果用户没有连接到Internet(或运行本地服务器的网络),那么似乎不可能使用上述任何一种技术,对吗?
基本上我想的是:
- 用户A和用户B在同一LAN/WLAN上的两台不同的机器上,没有连接到Internet。
- 用户A在浏览器中打开应用/页面。
- 用户B在浏览器中打开应用/页面。
- 用户A在文本框中输入用户B的本地IP地址,点击"连接"。
- 用户A和用户B可以互相发送消息
今天可能吗?或者在不久的将来会有什么东西能够实现这一点?
这是不可能在浏览器中直接完成的。
标准HTTP交互基于请求-响应模型。Web浏览器充当客户机,发送请求。它们不是设计为能够处理HTTP请求并相应地发送响应,该作业属于服务器。
我知道这是一个古老的问题,但如果有人发现它相关:
今天,这是可能的使用WebRTC, javascript,点对点,实时通信协议。
在撰写本文时,一个可用的库是PeerJS,它目前支持大多数浏览器,除了Safari。
PeerJS处理一些与NAT和防火墙相关的复杂的幕后工作,这样你就可以在两个JavaScript客户端之间发送数据。