【问题标题】:JS Local Network Communication [closed]JS本地网络通信[关闭]
【发布时间】:2020-03-30 11:26:43
【问题描述】:

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

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

进一步的想法:A 在我的 web 应用程序中按下一个按钮,它是一个 React 组件。然后,React 组件与正在寻找合作伙伴的另一个人建立连接(在上述 C 的情况下) - 打开某种文档/页面,两者都可以实时或近乎实时地处理同一个文档。在最坏的情况下:通信应该能够在没有连接到我的服务器(或一般的 Internet 连接)的情况下进行,但不是必须的。

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

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

【问题讨论】:

  • 听起来你想要 webrtc。您可以进行浏览器到浏览器的通信,并且应该可以通过局域网进行。 webrtc.org
  • 嗨 Dart,欢迎来到 StackOverflow! SO 特别是一个问答网站,而不是一个讨论论坛。就目前而言,您的问题过于广泛,并且受个人意见的影响,这两者都被认为是 SO 的“离题”。如需更多信息,请查看什么被认为是 SO 的“主题”。如需更多信息,请参阅how to ask good questions,并拨打tour of the site
  • 论坛是为 Meteor 提出此类问题的好地方:forums.meteor.com

标签: javascript reactjs meteor connection real-time


【解决方案1】:

使用WebRTC API

虽然通常与实时音频/视频通信相关联,但它也可用于与任意数据进行点对点通信。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多