sách gpt4 ai đã đi

javascript - 是否可以在没有服务器的情况下使用 javascript 进行 p2p 聊天?

In lại 作者:行者123 更新时间:2023-12-04 10:13:07 26 4
mua khóa gpt4 Nike

最近我被选为我学习类(class)的后端lider。我们应该为聊天应用程序编写 BE,它允许用户在没有任何服务器代码的情况下进行 p2p 通信(我知道这意味着没有 BE,但我的教授不是技术人员)。我问他是否可以使用 webrtc,但他不喜欢使用 STUN 和 TURN 服务器的想法。所以我的主要问题是,这可能吗?我们正在谈论将在浏览器中运行的应用程序,而不是直接在操作系统中运行。如果是,我们可以使用哪些协议(protocol)/api 来实现这一目标?

1 Câu trả lời

我不确定我的问题是否正确,所以这里有一些一般信息:

WebRTC 作为 P2P API 严重依赖服务器。

  • 《冰》 :
    要将一个 Peer 连接到另一个 Peer,Peer 需要知道它们的 IP 地址以交换数据。他们可以向他们的操作系统“询问”注册的 IP,但这只会产生 127.0.0.1 和他们的本地网络 IP。这适用于同一台计算机上或同一本地网络中的计算机之间的连接,但其他一切都将失败。
    ICE 服务器 STUN 和 TURN 是必要的,因为您的浏览器客户端位于路由器网络地址转换 (NAT) 之后。 STUN 获取 NAT 的 IP 地址和端口,如果 STUN 失败,TURN 将数据包作为已知的公共(public) IP 地址转发。
  • “信号” :
    让我们假设,您的 Peers 知道他们自己的可访问 IP 地址(可能是使用 STUN 甚至 TURN 的 NAT IP 和端口)。偶如果 (!) 他们知道他们可访问的 IP,他们必须告诉其他 Peer 这个 IP 实际上是他们的 IP 以及用来联系他们的 IP。他们还必须告诉其他 Peer 一些其他技术信息,以使数据传输正常工作。要使用 WebRTC,您需要有一个 WebSocket-Server(或 Server-Sent-Events 和 HTTP Post Messages 的组合)来转发此信息。
    一切建立后(他们知道各自的 IP 和端口、技术信息等),您就可以通过 WebRTC 数据 channel 发送数据。

    我的建议:
    不要将 WebRTC 用于给定的用例。如果您不想使用后端服务器,则必须搜索 “无服务器”网络应用程序。 P2P 将始终依赖某种服务器来启动连接。如果您使用“无服务器”架构,则其他人正在托管您要使用的服务器/聊天服务(通常也称为“基于云的”)。如果是关于原型(prototype)应用程序的托管成本,您可以查看 heroku.com、aws.amazon.com、zeit.co、firebase.google.com 或其他提供免费、有限(测试)计划的托管服务提供商。
  • 关于javascript - 是否可以在没有服务器的情况下使用 javascript 进行 p2p 聊天?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61227851/

    26 4 0
    行者123
    Hồ sơ cá nhân

    Tôi là một lập trình viên xuất sắc, rất giỏi!

    Nhận phiếu giảm giá Didi Taxi miễn phí
    Mã giảm giá Didi Taxi
    Giấy chứng nhận ICP Bắc Kinh số 000000
    Hợp tác quảng cáo: 1813099741@qq.com 6ren.com