如何在当前的互联网设置下制作即时通讯系统?
How to make an instant messenger system in current internet settings?
首先我要明确我的问题:
1,我说的是做 IM 的计算机程序,而不是移动应用程序。该程序应该适用于每个家庭或办公室环境。
2,现在所有(或大部分)家庭计算机都在路由器后面,受 ISP 的安全策略保护。不像20年前,电脑连上适配器,就得到一个通用的IP,和Microsoft.com、whitehouse.gov一样好。 10 年前,你可以建议用户做端口转发,或者使用 UPnP 偷偷执行端口转发任务。但现在以安全的名义,ISP 正在从 ISP 管理的路由器中取出端口转发(据我所知,xfinity 正在这样做)。
我知道如何在局域网设置中进行IM,或者通用IP设置,你得到朋友的IP,使用TCP或UDP建立连接,然后传递信息。现在所有的电脑都在路由器后面的时候,再做IM可行的/流行的/正确的方法是什么?使用中央服务器通过建立 UserA-Server 和 UserB-Server 的连接来传输信息?我知道它会起作用,但不是很有效 "instant",以我的拙见。
请指教,谢谢。
Upnp 和 NAT-PMP 仍然可以工作,它会映射一个外部端口,如 punchhole。问题是我们的外部 IP 可能不确定。所以如果要发IM,有两种选择,DHT或者Central Controller
我建议你使用DHT和ICE结构的中央服务器,如果DHT可以工作就可以,或者我们可以使用中央服务器进行UDP/TCP遍历。在某些情况下,如对称NAT,服务器需要做中继,但在其他情况下,它只是启动连接,然后是一个没有服务器的p2p连接。
首先我要明确我的问题: 1,我说的是做 IM 的计算机程序,而不是移动应用程序。该程序应该适用于每个家庭或办公室环境。
2,现在所有(或大部分)家庭计算机都在路由器后面,受 ISP 的安全策略保护。不像20年前,电脑连上适配器,就得到一个通用的IP,和Microsoft.com、whitehouse.gov一样好。 10 年前,你可以建议用户做端口转发,或者使用 UPnP 偷偷执行端口转发任务。但现在以安全的名义,ISP 正在从 ISP 管理的路由器中取出端口转发(据我所知,xfinity 正在这样做)。
我知道如何在局域网设置中进行IM,或者通用IP设置,你得到朋友的IP,使用TCP或UDP建立连接,然后传递信息。现在所有的电脑都在路由器后面的时候,再做IM可行的/流行的/正确的方法是什么?使用中央服务器通过建立 UserA-Server 和 UserB-Server 的连接来传输信息?我知道它会起作用,但不是很有效 "instant",以我的拙见。
请指教,谢谢。
Upnp 和 NAT-PMP 仍然可以工作,它会映射一个外部端口,如 punchhole。问题是我们的外部 IP 可能不确定。所以如果要发IM,有两种选择,DHT或者Central Controller
我建议你使用DHT和ICE结构的中央服务器,如果DHT可以工作就可以,或者我们可以使用中央服务器进行UDP/TCP遍历。在某些情况下,如对称NAT,服务器需要做中继,但在其他情况下,它只是启动连接,然后是一个没有服务器的p2p连接。