У меня есть веб-приложение, которое использует node.js и библиотеку socket.io в дополнение к базе данных postgresql.Он размещен на героку.Для библиотеки socket.io я получаю сообщение об ошибке, если я запускаю свой код с адресом сайта, напечатанным как «http://X", но не при попытке» https://X" Чтобы исправить эту ошибку, я принудительно перенаправляюпользователи на сайт https, если они посещают версию http.Вот мой код для этого:
<script>
if (document.URL.indexOf("https") == -1 && document.URL.indexOf("localhost") == -1)
{
window.location.href = document.URL.replace("http", "https");
}
</script>
Есть ли причина, почему это плохая идея?Есть ли лучшее решение?Будем благодарны за любые комментарии по поводу различия между http и https.Вот ошибка, которую я получаю при запуске сайта по адресу http:
WebSocket connection to 'ws://theland.herokuapp.com/socket.io/?EIO=3&transport=websocket&sid=<not sure if I should share this part of the url...>' failed: Error during WebSocket handshake`: 'Sec-WebSocket-Accept' header is missing
Чтобы уточнить, сайт теперь отлично работает с моим решением, но меня беспокоит, является ли мое решение "хорошей практикой".
Спасибо за помощь!