如何在当前的互联网设置中制作即时通讯系统?



首先我想定义我的问题: 1,我说的是做IM的计算机程序,而不是移动应用程序。该程序应该在每个家庭或办公环境中工作。

2,现在所有(或大多数(家用计算机都在路由器后面,受ISP的安全策略保护。它不像 20 年前,当计算机连接到适配器时,它会获得一个通用 IP,与 Microsoft.com 和 whitehouse.gov 一样好。10年前,你可以建议用户做端口转发,或者使用UPnP偷偷执行端口转发任务。但现在以安全的名义,ISP正在从ISP管理的路由器中取出端口转发(据我所知,xfinity正在这样做(。

我知道如何在LAN设置或通用IP设置中进行IM,您可以获取朋友的IP,使用TCP或UDP建立连接,然后传输信息。现在,当所有计算机都在路由器后面时,再次进行IM的可行方法/流行方法/正确方法是什么?使用中央服务器通过建立用户 A 服务器和用户 B 服务器的连接来传输信息?我知道它会起作用,但以我的拙见,不是很"即时"。

请指教,谢谢。

  1. Upnp 和 NAT-PMP 仍然可以工作,它将映射一个像打孔一样的外部端口。问题是我们的外部IP可能不确定。因此,如果要发送IM,则有两种选择,DHT或中央控制器。

  2. 我建议你使用DHT和使用ICE结构的中央服务器,如果DHT可以工作,那就没关系了,或者我们可以使用中央服务器进行UDP/TCP遍历。在某些情况下,例如对称NAT,服务器需要进行中继,但在其他情况下,它只是启动连接,然后是没有服务器的p2p连接。