打洞(P2P)与 NAT 类型
之前一直有大致了解这里,今天无意发现一篇文章总结的比较全面到位,尤其是这个图:
以下使用 bun 脚本提供服务端、客户端实现一个简单的 P2P 通讯:
# 服务端(需要公网地址,提供简单的地址发现)
bun run hole-punching-server.js --port={port=61002}
# 客户端1(内网)
bun run hole-punching-client.js --name={client_id_1} --server={server_address:port=61002}
# 客户端2(内网,尝试连接到客户端1)
bun run hole-punching-client.js --name={client_id_2} --server={server_address:port=61002}
> connect {client_id_1}