Mediasoup v3 พร้อม Docker

ฉันกำลังพยายามเรียกใช้ตัวอย่าง WebRTC 2 (โดยใช้ mediasoup) ใน docker

ฉันต้องการใช้งานเซิร์ฟเวอร์สองเครื่องในขณะที่ฉันกำลังสนทนาทางวิดีโอผ่านชุดอินสแตนซ์!

ข้อผิดพลาดของฉัน:

คุณเห็นข้อผิดพลาดนี้หรือไม่: createProducerTransport ข้อผิดพลาด null: การผูกพอร์ตล้มเหลวเนื่องจากที่อยู่ไม่พร้อมใช้งาน [การขนส่ง:udp, ip:'172.17.0.1', พอร์ต:50517, พยายาม:1/50000]

ฉันคิดว่าเกี่ยวข้องกับการตั้งค่าเครือข่ายนักเทียบท่า

นักเทียบท่า-compose.yml

version: "3"
services:
  db:
    image: mysql
    restart: always
  app:
    image: app
    build: .
    ports:
      - "1440:443"
      - "2000-2020"
      - "80:8080"
    depends_on:
      - db 
  app2:
    image: app
    build: .
    ports:
      - "1441:443"
      - "2000-2020"
      - "81:8080"
    depends_on:
      - db 

นักเทียบท่าไฟล์

FROM node:12

WORKDIR /app
COPY . .

CMD npm start

person codemeasandwich    schedule 19.09.2020    source แหล่งที่มา
comment
ปัญหา github อาจช่วยคุณได้ คุณช่วยลองแก้ไข config.js และเปลี่ยนการตั้งค่า webRtcTransport ได้ไหม   -  person flaxel    schedule 19.09.2020


คำตอบ (3)


มันบอกว่าไม่สามารถผูกที่อยู่ได้ ดังนั้นอาจเป็น IP หรือพอร์ตที่ทำให้เกิดปัญหา

ดูเหมือนว่า IP จะเป็น IP ของอินสแตนซ์นักเทียบท่า แม้ว่าอินสแตนซ์นักเทียบท่าจะอยู่ในเครื่องสองเครื่องที่แตกต่างกัน แต่ควรเป็น ip ของเซิร์ฟเวอร์ไม่ใช่อินสแตนซ์นักเทียบท่า (ในการตั้งค่ามีเดียซุป)

นอกจากนี้ยังมีพอร์ตของการเชื่อมต่อ rtcp ที่ต้องเปิดในอินสแตนซ์นักเทียบท่า โดยปกติแล้วจะอยู่ในไฟล์กำหนดค่า mediasouo ด้วย โดยปกติแล้วจะต้องมีพอร์ตไม่กี่ร้อยพอร์ตที่ต้องเปิด

person Dirk V    schedule 19.09.2020

คุณควรตั้งค่าพอร์ต rtc min และ max เป็น 2000 และ 2020 เพื่อการทดสอบ ฉันเดาว่าคุณไม่ได้ส่งต่อพอร์ตเหล่านี้ ในการใช้งานนักเทียบท่าเขียน 2000-2020:2000-2020 ตรวจสอบให้แน่ใจว่าได้ตั้งค่า listenIps ของคุณอย่างถูกต้อง

person Md Azharuddin    schedule 10.11.2020

หากคุณใช้งาน Mediasoup ใน Docker ควรเรียกใช้คอนเทนเนอร์ที่ติดตั้ง Mediasoup ในโฮสต์โหมดเครือข่าย

นี่คือคำอธิบายที่นี่:

วิธีใช้เครือข่ายโฮสต์สำหรับการเขียนนักเทียบท่า

และเอกสารราชการ

https://docs.docker.com/network/host/

นอกจากนี้ คุณควรใส่ใจกับการตั้งค่า mediasoup webRtcTransport.listenIps และ plainRtpTransport.listenIp พวกเขาควรบอกลูกค้าว่าเซิร์ฟเวอร์ mediasoup ของคุณกำลังฟังที่อยู่ IP ใด

person brndusic    schedule 18.05.2021