没有服务器的通信

问题描述 投票:-1回答:1

关于诸如在线游戏,whatsapp和许多其他分布式系统的协作应用程序,服务器起着主要作用。它执行许多关键功能,这些功能对于整个应用程序的平稳运行是必需的。

但是假设我想开发一个应用程序,用户可以使用该应用程序在线连接并实时共享文本,图像,图形等数据。例如,一个用户可能正在研究数学问题,并想与另一位用户讨论它。因此,应用程序使这两个用户(如果需要,还可以有更多用户)可以联系并分享他们的想法。

用户可以在没有服务器作为中介的情况下进行这种通信吗?如果是,什么网络技术可以做到这一点?在缺少中介服务器的情况下,应用程序会错过哪些优势?

networking server client client-server
1个回答
1
投票

如果要构建这样的分布式拓扑,则需要解决许多问题。

  1. NAT必须考虑。这是必须解决的第一件事,您可能需要构建Natpmp或upnp或ICE才能实现nat遍历。

  2. 第二个问题是如何在没有服务器的情况下查找其他用户。您可能需要使用LSD或DHT

  3. [您需要考虑没有证书的网络安全性,例如可以存储用户信息并确保他们确实无害的服务器。

如果您使用我上面提到的这些技术或其他技术来解决所有问题,那么您会发现使用服务器相对简单会更好。这是在商业生产中的权衡。

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