我们有一个使用XMPP在两个客户端之间进行通信的应用程序;目标系统和智能手机(Android或iPhone)。两个客户端在XMPP服务器上使用相同的帐户来查找和发送消息。这种架构工作正常,但现在我们需要设置流媒体视频(目标到手机)。使用XMPP太慢,因此需要对等(P2P)解决方案。由于客户端(目标和电话)都位于本地网络路由器之后,因此解决方案需要处理NAT /防火墙遍历,从而需要使用TCP来确保数据包按顺序传送。
使用其他公共服务器,我们可以获取客户端路由器的全局IP地址和端口。使用XMPP消息传递在客户端之间传递此信息。天真的方法是使用用于访问公共服务器的相同端口在目标客户端上设置服务器套接字。于是,电话客户端设置为使用目标客户端的全局地址和端口与目标客户端建立连接。
永远不会建立连接。任何人都可以告诉我这种方法的缺陷或建议一种不需要专用服务器的替代方法吗?提前谢谢。
答案 0 :(得分:0)
您可以尝试Ice4j。它支持你正在寻找的东西。
答案 1 :(得分:0)
Ice4J tutorial,但在新位置获取Ice4J:https://github.com/jitsi/ice4j
这个软件包几乎可以让您完全按照自己的意愿行事。