JS本地网络通信

JS Local Network Communication

这个问题更多的是在寻找一个想法,而不是一个实现或技术解决方案。我想听听你会如何解决这类问题(或任务)。

我有一个使用 Javascript 使用 React & Meteor 构建的应用程序。目前,每次客户端做某事时,都会向我们的服务器发出一个 Meteor 调用,它将数据写入 MongoDB,并且每个其他客户端都会注意到此更改(并以某种方式响应)。这在自动取款机上工作正常。 现在我想添加一个新功能,允许两个客户端相互通信(仅限 LAN - 至少在第一个版本中)。举个例子:我有一个房间有 4 个客户——A、B、C 和 D,我想匹配其中的两个,例如A & C。这个连接应该只存在于这两个客户端之间,我想尽量减少到我的服务器和流星呼叫的流量。 (我的服务器根本不应该参与这种通信,除了可能每隔几分钟保存一些数据,但总的来说它应该在没有我的服务器的情况下工作)并且应该可以打开多个通信,如果 A&C正在一起工作 B & D 应该能够做同样的事情,此时传输的数据是 JSON。

进一步思考:A 在我的 Web 应用程序中按下了一个按钮,它是一个 React 组件。 React 组件然后与另一个也在寻找合作伙伴的人建立联系(在上面的 C 案例中)——某种 document/page 打开并且两者可以实时或接近实时地处理同一个文档.在最坏的情况下:通信应该能够在没有连接到我的服务器(或一般的 Internet 连接)的情况下工作,但它不必。

我首先想到使用套接字(SocketIO 或类似的东西),例如当A想和C一起工作时创建一个服务器,C连接到A,但这在JS中会带来一些问题 而且我不确定这是否真的是解决这个问题的好方法。

我想听听其他一些想法,也许我 运行 的方向完全错误。

使用 WebRTC API.

虽然经常与实时audio/video通信相关联,但它也可以用于与任意数据的点对点通信。

据我所知,截至撰写本文时,这是唯一可用的客户端 Web 原生点对点 API,已被主要浏览器供应商广泛实施。