我在我的服务器应用程序中使用libjitsi / ice4j并希望在我调用 Agent.startConnectivityEstablishment()之前修改我的本地候选人,有没有办法将优先级或任何其他属性修改为强制一个候选人优先于另一个候选人?例如,我最终得到了这些当地候选人:
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 候选人,因为它使用专用网络地址,无法从网络外部联系到。
这两个库都没有很好地记录,并且在相关对象上似乎缺少mutator,所以任何帮助都会受到赞赏。
答案 0 :(得分:1)
您是否发现正在使用srflx而不是主机?我只能想象ICE4J会在可行的情况下选择主机。我注意到我的检查并在主机上失败,否则它会选择它。我可以再次检查。
您可以查看本教程以了解它是否有帮助:stellarbuild.com/blog/article/ice4j-networking-tutorial-part-1
说实话,如果你使用SDP会更容易修改,因为你可以在字符串比较上手动尝试一些技巧,但这是有风险的。也许两个本地网络都使用192.168.1。*但是在不同的网络上。所以假设srflx是相同的并且本地主机字符串开始相同,你可以删除srflx并强制它尝试主机。
我会仔细检查,但我认为它会优先自动托管。