Ошибка подключения WebSocket: net::ERR_CONNECTION_REFUSED
Я следую инструкциям по созданию демо-проекта с использованием WebRTC, но не могу установить соединение WebSocket, даже выполняя все шаги, указанные в руководстве.
В проекте, который я изучаю, используется порт 8080 и указано "ws://localhost:9090". В моем проекте используется порт 8081. Я скопировал URL "ws://localhost:9090" из руководства, так как не знал о значении 9090, и получил следующую ошибку:
WebSocket connection to 'ws://localhost:9090/' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED.
Я также пробовал изменить localhost на 8081, но тогда получаю ошибку при установлении handshake.
Мой сервер написан на Node.js.
5 ответ(ов)
Chrome не позволяет устанавливать небезопасные соединения WebSocket (ws) к localhost (только wss), поэтому вам нужно настроить TLS-сертификат для вашего локального веб-сервера/веб-сокета. Однако это должно работать корректно в Firefox.
Вам нужно использовать ws://вашIP:9090/
, где вашIP имеет формат, например, 192.168.?.?
.
Это, похоже, общая проблема с веб-сокетами.
Измените URL на динамическое имя, используя встроенную переменную location.host
, и измените протокол на безопасный веб-сокет wss
, если вы настроили TLS:
const ws = new WebSocket("wss://" + location.host + "/");
WebRTC обычно требует защищенное соединение (т.е. https). Ошибка, которую вы получили, вызвана проблемами с сертификатами TLS/SSL, возможно, они неправильно настроены в вашем проекте. Убедитесь, что у вас есть действующий сертификат TLS/SSL и что он правильно сконфигурирован в вашем проекте. После этого ваше приложение должно работать без указанной ошибки.
Вы также можете легко изменить сопоставления IP-адресов с именами хостов. На Windows перейдите в C:\Windows\System32\drivers\etc\hosts
и раскомментируйте следующую строку:
127.0.0.1 localhost
Сохраните изменения и перезагрузите компьютер.
Использование async/await с циклом forEach
Как получить полный объект в console.log() Node.js, а не '[Object]'?
Как прочитать JSON-файл в память сервера?
Обнаружена ошибка: Невозможное нарушение: Неверный тип элемента: ожидался строковый тип (для встроенных компонентов) или класс/функция, но получен объект
Как скачать файл с помощью Node.js (без использования сторонних библиотек)?