2016-01-28 8 views
0

У меня есть веб-сервер, развернутый в порту 80 с использованием Websocket в своем javascript.Javascript Websocket для прослушивания на порту 80

var wsURL = ws://localhost:80/ws" 
wsConn = new WebSocket(wsURL); 

Но я получаю эту ошибку:

WebSocket connection to 'ws://localhost/ws' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED

У меня не было никаких проблем, когда я запускаю это локально с портом, кроме 80, но в производстве нужно использовать порт 80 и продолжать получать эту ошибку.

Есть ли все, что я могу сделать WebSocket Работа с портом 80?

+1

попробуйте window.location.hostname вместо localhost – rambossa

+0

@ Michael-R Worked! Благодаря! –

+0

cool Я добавил его в качестве ответа – rambossa

ответ

1

Использование window.location.hostname устраняет любые несоответствия URL, которые у вас есть на производстве. Использование localhost в URL-адресе приведет к появлению ws-запросов к локальным машинам пользователя в отличие от вашего производственного сервера. Следовательно, ваш отказ в подключении.

Примечание Этот метод предназначен только для того, когда клиент непосредственно обслуживает тот же сервер WebSocket, если серверы либо разные вам потребуется способ получить точный адрес сервера WebSocket. - Скорее всего, некоторый тип перенаправления/пересылки/прокси-сервера из бэкэнд (обслуживающего интерфейс) на сервер WebSocket.

0

WebSocket инициализируется HTTP-запросом, ws-протокол использует порт 80 по умолчанию.

ERR_CONNECTION_REFUSED означает, что вы не слушаете этот порт, вам нужно проверить конфигурацию или журналы вашего веб-сервера.

В Linux/OSX, вы должны запустить свою программу с помощью пользователя root для прослушивания порта < 1024, после этого вы можете использовать setuid() для сброса прав root.

Смежные вопросы