Возможно ли иметь WebSockets с https? При переходе на https мой WebSocket возвращает ошибку безопасности и отлично работает с обычным http...
socket = new WebSocket("ws://my_www:1235");
Спасибо
Ответ 1
Соединение WebSocket начинает свою работу с помощью рукопожатия HTTP или HTTPS. Когда страница доступна через HTTP, вы можете использовать WS или WSS (защита WebSocket: WS over TLS). Однако, когда ваша страница загружается через HTTPS, вы можете использовать только WSS-браузеры, которые не позволяют "понизить" безопасность.
Ответ 2
Вы не можете использовать WebSockets через HTTPS, но вы можете использовать WebSockets через TLS (HTTPS - HTTP через TLS). Просто используйте "wss://" в URI.
Я считаю, что недавняя версия Firefox не позволит вам использовать не-TLS WebSockets с HTTPS-страницы, но обратное не должно быть проблемой.
Ответ 3
1 дополнительная оговорка (помимо ответа от kanaka/peter): если вы используете WSS, а сертификат сервера неприемлем для браузера, вы не можете получить какой-либо диалог с браузером (например, для веб-страниц). Это связано с тем, что WebSockets рассматривается как так называемый "субресурс", а исключение сертификата/исключение безопасности/любые диалоги не отображаются для подресурсов.