Я реализовал видео чат.Он отлично работает на локальном сервере, но не работает на производственном сервере.
this.rtc.oniceconnectionstatechange = () => {
console.log(this.rtc.iceConnectionState);
}
На локальном сервере приведенный выше код печатает: checking
, затем через некоторое время: connected
На рабочем сервере это: checking
, затем failed
Я пыталсяиспользовать STUN-сервер Google и бесплатный сервер TURN по https://numb.viagenie.ca/ (для получения доступа необходимо зарегистрироваться)
Я проверил серверы TURN и STUN по https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/ и, похоже, работает нормально.
Код написан на Vue js, и вы можете увидеть его на этом пере:
https://codepen.io/4unkur/pen/orNyvy?editors=1010
Что не так с моим кодом, или это проблема этой бесплатной TURNсервер?
дамп хрома: // webrtc-internals https://pastebin.com/whhibysu
ОБНОВЛЕНИЕ
Я тестировал свое приложение на 2 ноутбуках: HP (Windows) и Macbook, и это не сработало.Затем я попытался проверить, использует ли мой мобильный телефон + Macbook, и это сработало, затем телефон + HP - не сработало.
Итак, я подумал, что проблема в HP?Итак, я проверил HP + HP, т.е. открыл 2 вкладки в браузере на HP, и это сработало.Почему проблема возникает только на HP, может ли это быть проблема ОС Windows?
ОБНОВЛЕНИЕ 2
Я запускаю средство устранения неполадок WebRTC на https://test.webrtc.org/
на HPи это дало мне ошибки во вкладке «Связь»:
На Macbook: я не получаю такие ошибки