没有服务器的通信

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了没有服务器的通信相关的知识,希望对你有一定的参考价值。

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

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

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

答案

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

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

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

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

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

以上是关于没有服务器的通信的主要内容,如果未能解决你的问题,请参考以下文章

没有服务器的通信

移动设备之间的实时 P2P 通信

有没有办法让活动与启动活动的服务进行通信?

在没有服务器的情况下为对等通信更改 2 个客户端套接字?

与服务提供商的通信失败:Twitter 中没有对等证书

疯狂Java讲义:使用ServletSocket创建TCP服务器端