1

最终,我想要构建一个在浏览器中运行的 Javascript 应用程序,并且能够与在同一网络内的其他机器上运行相同 Javascript 应用程序的其他用户进行通信。我一直在阅读和使用 Websockets 和 webRTC,但它们都需要在连接过程的某个阶段使用服务器。我还查看了 PeerJs 和 OpenPeer,但它们似乎也依赖于 webRTC,而这又需要一个中间服务器来设置连接。

如果用户没有连接到 Internet(或没有连接到运行本地服务器的网络),则似乎无法使用上述任何一种技术,对吧?

基本上我的想法是这样的:

  1. 用户 A 和用户 B 位于同一 LAN/WLAN 上的两台不同机器上,未连接到 Internet。
  2. 用户 A 在其浏览器中打开应用程序/页面。
  3. 用户 B 在他的浏览器中打开应用程序/页面。
  4. 用户 A 在文本框中输入用户 B 的本地 IP 地址,然后单击“连接”。
  5. 用户 A 和用户 B 现在可以互相发送消息。

今天这可能吗?或者是否正在开发一些可以在不久的将来实现这一点的东西?

4

2 回答 2

1

这是不可能直接在浏览器内部进行的。

标准 HTTP 交互基于请求-响应模型。Web 浏览器充当客户端,发送请求。它们的设计目的不是能够处理 HTTP 请求并相应地发送响应,该作业属于服务器。

于 2013-06-06T20:31:29.293 回答
0

我知道这是一个老问题,但如果有人发现它相关:

今天,这可以使用WebRTC实现,这是一种 JavaScrip 点对点实时通信协议。

在撰写本文时可用的库是PeerJS,它目前支持大多数浏览器,但 Safari 除外。

PeerJS 处理与 NAT 和防火墙相关的一些复杂的幕后工作,以便您可以在两个 JavaScript 客户端之间发送数据。

于 2021-11-18T11:13:35.927 回答