fix(livekit): 统一信令/媒体端口为 17880/17881/17882,修复接听后双方网络错误
根因:LiveKit 的 config/livekit.yaml 媒体端口(7881/7882)与宿主实际映射(17881/17882)不一致, 信令走 17880 能通,但媒体被宣告到 7881/7882 连不上。 - config/livekit.yaml: port/tcp_port/udp_port -> 17880/17881/17882 - docker-compose.yaml: 容器侧端口与宿主侧一致(1788x),不再重映射 - .env.example: 默认端口改为 1788x 并注明三处需一致 - scripts/selftest.sh: LK_PORT 默认值改为 17880 - scripts/fix-livekit-ports.sh: 一键备份+对齐 .env+仅重建 livekit 的修复脚本 - README: 更新端口表、客户端接入参数与排障说明 Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
+6
-4
@@ -370,7 +370,9 @@ services:
|
||||
|
||||
# LiveKit:语音/视频通话的 SFU,Apache 2.0,自部署。
|
||||
# 客户端通过 ws://<SERVER_IP>:<LIVEKIT_PORT> 连接,凭 LIVEKIT_API_KEY/SECRET 签发的 token 进房。
|
||||
# 三个宿主端口都可在 .env 调整(7880/7881/7882 被其他服务占用时改映射即可,容器内端口不变)。
|
||||
# 三个端口必须与 config/livekit.yaml 里容器监听的端口完全一致(默认 17880/17881/17882),
|
||||
# 即“宿主侧 = 容器侧”,不要在宿主侧做重映射;LiveKit 向客户端宣告媒体地址时只认
|
||||
# config/livekit.yaml 里的端口,重映射会导致信令通、媒体不通。
|
||||
livekit:
|
||||
image: ${LIVEKIT_IMAGE}
|
||||
container_name: livekit
|
||||
@@ -379,9 +381,9 @@ services:
|
||||
environment:
|
||||
LIVEKIT_KEYS: "${LIVEKIT_API_KEY}: ${LIVEKIT_API_SECRET}"
|
||||
ports:
|
||||
- "${LIVEKIT_PORT:-7880}:7880" # HTTP / WebSocket 信令
|
||||
- "${LIVEKIT_RTC_TCP_PORT:-7881}:7881" # RTC over TCP(UDP 不通时的备用通道)
|
||||
- "${LIVEKIT_RTC_UDP_PORT:-7882}:7882/udp" # RTC 媒体(UDP 复用端口)
|
||||
- "${LIVEKIT_PORT:-17880}:17880" # HTTP / WebSocket 信令
|
||||
- "${LIVEKIT_RTC_TCP_PORT:-17881}:17881" # RTC over TCP(UDP 不通时的备用通道)
|
||||
- "${LIVEKIT_RTC_UDP_PORT:-17882}:17882/udp" # RTC 媒体(UDP 复用端口)
|
||||
volumes:
|
||||
- ./config/livekit.yaml:/etc/livekit.yaml
|
||||
networks:
|
||||
|
||||
Reference in New Issue
Block a user