<p>您可以使用以下仅Python库来建立ICE连接:</p>
<p><a href="https://github.com/jlaine/aioice" rel="nofollow noreferrer">https://github.com/jlaine/aioice</a></p>
<p>以下是同一流程中两个ICE端点的示例。在现实生活中,你需要一些信令方法来交换候选者,用户名(“ufrag”)和密码(“pwd”)。在</p>
<pre><code>import asyncio
import aioice
async def connect_using_ice():
conn_a = aioice.Connection(ice_controlling=True)
conn_b = aioice.Connection(ice_controlling=False)
# invite
await conn_a.gather_candidates()
conn_b.remote_candidates = conn_a.local_candidates
conn_b.remote_username = conn_a.local_username
conn_b.remote_password = conn_a.local_password
# accept
await conn_b.gather_candidates()
conn_a.remote_candidates = conn_b.local_candidates
conn_a.remote_username = conn_b.local_username
conn_a.remote_password = conn_b.local_password
# connect
await asyncio.gather(conn_a.connect(), conn_b.connect())
# send data a -> b
await conn_a.send(b'howdee')
data = await conn_b.recv()
print('B got', data)
# send data b -> a
await conn_b.send(b'gotcha')
data = await conn_a.recv()
print('A got', data)
# close
await asyncio.gather(conn_a.close(), conn_b.close())
asyncio.get_event_loop().run_until_complete(connect_using_ice())
</code></pre>