я использую этот PHP библиотека веб-сокетов для подключения к незащищенному серверу веб-сокетов. На локальном хосте с использованием XAMPP все работает нормально. Я могу создать сервер и успешно подключиться к нему на стороне клиента с помощью JavaScript, используя
новый WebSocket (‘ws: //mywebsite.com: 80 / dashboard’);
Однако теперь я хочу создать веб-сокет на действующем http-сайте (cpanel shared host). У меня есть доступ к SHELL, но я не могу создавать / открывать порты, поэтому мне нужно использовать порт 80 по умолчанию для создания сервера веб-сокетов.
Теперь проблема заключается в том, что при выполнении файла PHP в оболочке для создания сервера веб-сокета, эта ошибка, которую я получаю: PHP Warning: stream_socket_server(): unable to connect to tcp://www.mywebsite.com:80 (Permission denied)
Кто-нибудь знает, почему он говорит, что разрешение отклонено, поскольку порт всегда открыт.
$this->context = stream_context_create();
stream_socket_server("tcp://www.mywebsite.com:80", $errno, $err, STREAM_SERVER_BIND|STREAM_SERVER_LISTEN, $this->context)
У меня такое ощущение, что что-то не так с stream_context_create () Socket.php. Это возможно, или вы знаете другую причину, по которой я не могу создать сервер веб-сокетов?
По умолчанию порты ниже 1024 могут быть открыты только пользователем root. Корневой доступ не разрешен большинством провайдеров виртуального хостинга.
Вы можете проверить, какие порты выше 1024 открыты, и запустить сервер в одном из них.
Альтернативой является переход на VPS, вы можете иметь дешевые экземпляры в DigitalOcean или даже в AWS (бесплатные экземпляры уровня)
Других решений пока нет …