【问题标题】:Communicate with devices on local network using client-side Javascript使用客户端 Javascript 与本地网络上的设备通信
【发布时间】:2019-08-31 18:09:42
【问题描述】:

我正在尝试构建一个网站,允许您将文件传输到连接到本地网络的设备。该网站是静态的,将托管在 GitHub 页面上。

是否可以使用 Javascript 与本地网络上的其他设备进行通信(即传输文件/文本)?设备的 IP 地址是已知的,我正在这里寻找点对点连接。

注意:由于本网站是静态的,没有可以控制的服务器端代码。

谢谢

【问题讨论】:

  • 你能说得更具体点吗?
  • @Peter 您需要什么详细信息?
  • 您的问题非常广泛且开放。浏览器具有许多安全机制,这些机制限制了您可以使用它们进行的操作,并且通过为我们提供有关您所针对的问题的更多上下文,我们可以更好地为您提供帮助。不要将回复作为评论发布;编辑您的原始帖子。
  • @Peter 感谢您的快速回复;那么是否可以在客户端 Javascript 中执行此操作,还是必须使用外部服务器来完成?
  • 不,您不能在客户端执行此操作,您需要一个后端。

标签: javascript client-side static-site


【解决方案1】:

是的,根据您的具体情况,可能会有一些警告。

WebRTC

使用 WebRTC,您可以在网络上的两个客户端之间建立真正的点对点连接。它们可以发送数据(二进制或字符串)和媒体流(如网络摄像头和麦克风)。这甚至可以在静态页面上使用。

问题是您需要某种服务器来帮助协调连接。由于最初设置 WebRTC 标准的方式,必须进行一些反复来设置该点对点连接。必须存在一些在客户端之间传递信号的方法,这通常通过 Web 套接字和中间服务器来完成。

有一些novel alternatives

未来ORTC 可能会解决这个问题,允许一次性设置呼叫,使服务器端要求更容易。

嵌入式 HTTP 服务器

您没有详细说明要在网络上与什么设备进行通信的细节,所以也许这也是一种可能性。没有什么可以阻止您的浏览器与 LAN 上的设备进行通信。您的静态网页可以使用 Fetch API 或 AJAX 从设备检索数据。

【讨论】:

  • 您能否详细说明如何将嵌入式 HTTP 服务器添加到站点?例如。如何让计算机监听特定端口上的流量?
  • @Bruce 如果没有更多信息,我真的不知道该详细说明什么。您基本上编写了一些本机应用程序,该应用程序可以在您希望拥有该 Web 服务器的任何设备上运行。如果我在 PC 上执行此操作,并且我想要一些可以轻松部署到多个平台的东西,我可能会制作一个小型 Node.js 服务器。但是,也许你有其他技能……一些 C# 或其他东西。我不会知道的。你也可以通过浏览器扩展部署你的本地代码……但当然不能部署到任意设备上。
  • 啊,好吧,虽然你的意思是可以将服务器嵌入到网页中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-24
  • 2018-03-27
相关资源
最近更新 更多