Networking 无服务器通信

Networking 无服务器通信,networking,server,client,client-server,Networking,Server,Client,Client Server,考虑到在线游戏、whatsapp和许多其他分布式系统等协作应用程序,服务器扮演着主要角色。它执行许多关键功能,这些功能是整个应用程序顺利运行所必需的 但假设我想开发一个应用程序,用户可以使用它在线连接并实时共享数据,如文本、图像和图形。例如,一个用户可能正在处理一个数学问题,并希望与另一个用户讨论该问题。所以,该应用程序可以让这两个用户(如果需要,还可以让更多用户)连接并分享他们的想法 用户可以在没有服务器作为中介的情况下进行这种通信吗?如果是,是什么网络技术实现了这一点?应用程序缺少中介服务器

考虑到在线游戏、whatsapp和许多其他分布式系统等协作应用程序,服务器扮演着主要角色。它执行许多关键功能,这些功能是整个应用程序顺利运行所必需的

但假设我想开发一个应用程序,用户可以使用它在线连接并实时共享数据,如文本、图像和图形。例如,一个用户可能正在处理一个数学问题,并希望与另一个用户讨论该问题。所以,该应用程序可以让这两个用户(如果需要,还可以让更多用户)连接并分享他们的想法


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

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

  • 纳特一定在思考。这是必须解决的第一件事,您可能需要构建Natpmp或upnp或ICE来实现nat遍历

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

  • 您需要考虑没有证书的网络的安全性,例如可以存储用户信息的服务器,并确保他们真正安全

  • 如果您通过使用上述技术或其他一些技术来解决所有问题,您会发现使用服务器更好,因为它相对简单。这是商业生产中的权衡