2016-07-11 2 views
0

Я новичок в WebSocket и Node.js. Я пытаюсь создать чат в режиме реального времени в качестве базовой программы. Я в основном основываю свой код here. Я запускаю свой код в Amazon Linux, чтобы он работал как настоящий веб-сервер. Я всегда получаю сообщение об ошибке после ввода имени пользователя.Ошибка подключения WebSocket к <url>: Ошибка во время установления связи с WebSocket: Неожиданный код ответа: 404

Я использую node-static как статический серверный API для моего файла index.html.

Вот мой код для моего JavaScript: app.js И вот мой код index.html, расположенный внутри «общественной» папки: index.html Я всегда получаю ошибку при line15 в index.html.

Может ли кто-нибудь сказать мне, в чем проблема? Я попытался переместить эту часть где-нибудь внутри функции connectToChat(), но ошибка все еще существует.

+0

Вы можете поделиться ими? вы найдете его в консоли вашего браузера. – Ygalbel

+0

Соединение с WebSocket с 'ws: // : 8000/index.html' не удалось: ошибка во время рукопожатия WebSocket: Неожиданный код ответа: 404 – Yvanne

+0

У вас есть ошибка в изменении URL-адреса вашего веб-сайта на 'ws: // : 8000' без index.html в конце. – Ygalbel

ответ

0

У вас есть ошибка в url, которую вы вызываете. Он должен быть ws://<mywebserver>:8000 вместо ws://<mywebserver>:8000/index.html

Чтобы это исправить, в index.html, измените эту строку

var url = document.URL.replace("http://", "ws://"); в

var url = document.origin.replace("http://", "ws://");

+0

Я попробовал ваше предложение. Ошибка все тот же, но теперь без «/index.html». – Yvanne

+0

Хорошо. Можете ли вы проверить, открыт ли порт 8000 для подключения к доходам? – Ygalbel

0

Я была такая же проблема. Я смог исправить это, указав клиентский скрипт на реальный IP-адрес. Это не лучшее решение, но на данный момент это будет сделано.

let socket = io('http://000.000.000.000:0000'); 

Надеюсь, это поможет!

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