Используйте Безопасный Websocket с PHP-шифрованным рукопожатием
Я читал, что (secure) Websocket использует те же порты, что и протокол HTTP(S). Однако мой PHP Websocket сервер получает зашифрованное рукопожатие от клиентов, я слушаю открытые соединения на порту 12345.
Моя система хорошо работает через небезопасный websocket, но мне нужно добавить безопасную функцию, и я не понимаю, почему я получаю эти зашифрованные рукопожатия. Это было бы прозрачно для меня благодаря модели OSI...Если я настрою apache для активации механизма SSL и прослушивание на порту 12345. Я не смогу использовать этот порт снова для моего PHP Websocket сервера, потому что он будет тогда в состоянии "уже используется"... или я что-то забыл...
Я заблудился : (
Правка:
Вот мой безопасный заголовок websocket (с помощью wss://
):
Request URL:wss://localhost:12345/
И вот мой простой заголовок websocket (используя ws://
):
Request URL:ws://localhost:12345/
Request Method:GET
Status Code:101 Switching Protocols
Request Headersview source
Connection:Upgrade
Host:localhost:12345
Origin:http://localhost
Sec-WebSocket-Extensions:x-webkit-deflate-frame
Sec-WebSocket-Key:wovBDvKiKdy/+0Y2BQPr9w==
Sec-WebSocket-Version:13
Upgrade:websocket
(Key3):00:00:00:00:00:00:00:00
Response Headersview source
Connection:Upgrade
Sec-WebSocket-Accept:1ao7ngQG4LAa3JxFibyvoocbSAM=
Upgrade:websocket
(Challenge Response):00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
Почему я получаю больше без защищенного соединения?
1 ответ:
Я читал, что (secure) Websocket использует те же порты, что и протокол HTTP(S)
По умолчанию, да - но вы можете переопределить порт в обоих через URL, рассмотрим:
http://www.example.com:443/ https://www.example.com:8080/ http://www.example.com:12345/
Если что - то другое уже прослушивает определенный порт/адрес, то вы не можете запустить там второй сервер-поэтому, если ваш веб-сервер уже прослушивает порт 443 (https), вы не сможете запустить отдельный сервер websocket на том же порту.
Просто оставьте ваш HTTPS сервер на 443 и запустите сервер ssl ws на 12345.
Только что видел ваш последний комментарий.
SSL-это не только то, какой порт вы слушаете - трафик зашифрован. Если вы хотите обрабатывать трафик wss, то вам нужен сервер с поддержкой SSL. Существуют различные способы реализации этого, это зависит от того, как вы реализовали текущий сервер.