我在服务器应用程序中使用libjitsi / ice4j,并想在调用Agent.startConnectivity Establishmentment()之前修改我的本地候选者,有没有办法修改优先级或任何其他属性来强制一个候选者优先于另一个候选者?例如,我最终得到了这些本地候选人:

default candidate: candidate:1 1 udp 2130706431 192.168.122.15 5000 typ host
candidate:1 1 udp 2130706431 192.168.122.15 5000 typ host
candidate:2 1 udp 1694498815 24.234.1.1 5000 typ srflx raddr 192.168.122.15 rport 5000


我需要在主机候选服务器上选择srflx候选服务器,因为它使用专用网络地址,并且无法从网络外部访问。

这两个库都没有很好的文档记录,而且在相关对象上似乎缺少变异符,因此可以提供任何帮助。

最佳答案

您是否发现使用了srflx而不是主机?我只能想象ICE4J将在可行的情况下选择主机。我注意到我的检查并在主机上失败,否则它将选择它。我可以再次检查。

您可以查看本教程以查看是否有帮助:stellarbuild.com/blog/article/ice4j-networking-tutorial-part-1

说实话,如果使用SDP,修改起来会更容易,因为这样您就可以手动尝试一些字符串比较的技巧,但这是有风险的。也许两个本地网络都使用192.168.1。*,但它们位于单独的网络上。因此,假设srflx相同且本地主机字符串以相同的方式启动,则可以删除srflx并强制其尝试主机。

我会仔细检查,但我认为它会自动为主机提供优先级。

07-25 21:31