聊天应用程序,对等通信

问题描述 投票:-2回答:3

我正在使用Javascript开发聊天应用程序。从一个客户端向另一个客户端发送消息时,我是否必须通过服务器发送消息,还是可以使用诸如websockets之类的对等方法直接发送消息?

p2p
3个回答
0
投票

有很多方法可以做到。我推荐该方案:

Peer <---> custom websocket server <---> Peer;

我推荐NodeJSSocketIO


0
投票

欢迎来到生活中,您会看到设计模式的重要性。

您可以开始使用带有Web套接字的中介模式和代理模式来解决。惠特尔是否需要服务器取决于您的设计。从技术角度来说,HTML5提供了多种API,您可以通过它们来自己做一些事情。HTML5和JS提供了许多API。开始研究WebSockets,服务器发送的事件,Web Worker。

服务器将在充当调解人的同时为您提供记录保留的灵活性。或者,您可以提出一种纯p2p设计,该设计具有以下方案:每个节点或用户将其详细信息(IP)通知其他用户以建立通信。记住要使Web套接字正常工作,客户端需要知道要连接到哪个地址。也许它可以有固定的主节点。然后,您可以将可观察对象用于轮询和其他功能。看看BitTorrent协议的设计灵感。

[发挥创意并开始设计。


0
投票

我认为,仅使用服务器会更容易。

[如果您希望该应用程序在非本地网络上运行,无论如何,您都需要一台服务器来帮助在计算机之间建立连接,因为要使用P2P,您需要用户的计算机相互了解(Websockets仅在一台计算机已经相互了解的情况下才可以使用,因此,如果他们不知道,则无关紧要)。如果它们在同一网络上(例如,在家中使用同一Internet),这不是问题。但是,如果它们位于不同的网络上(通常在聊天中发生),则需要将计算机彼此“公开”,以便它们可以建立连接并发送消息。为此,您需要双方都知道的中介服务器的帮助(您可以通过websocket来了解每个客户端和服务器)。

© www.soinside.com 2019 - 2024. All rights reserved.