我们有一个使用 XMPP 在两个客户端之间进行通信的应用程序;目标系统和智能手机(Android 或 iPhone)。两个客户端在 XMPP 服务器上使用相同的帐户来查找和发送消息给对方。该架构运行良好,但现在我们需要设置流式视频(目标到手机)。使用 XMPP 速度太慢,因此需要点对点 (P2P) 解决方案。由于两个客户端(目标和电话)都位于本地网络路由器之后,因此该解决方案需要处理 NAT/防火墙穿越,因此需要使用 TCP 来确保数据包按顺序传递。
使用另一台公共服务器,我们可以获得客户端路由器的全局 IP 地址和端口。此信息使用 XMPP 消息在客户端之间进行通信。天真的方法是使用用于访问公共服务器的相同端口在目标客户端上设置服务器套接字。因此,电话客户端被设置为使用目标客户端的全局地址和端口与目标客户端建立连接。
永远不会建立连接。谁能告诉我这种方法的缺陷或建议一种不需要专用服务器的替代方法?提前致谢。