Я написал игру с использованием веб-сокетов PHP, которая хорошо работает на моем локальном сервере разработки. Сейчас я пытаюсь запустить сервер веб-сокетов на нелокальном сервере, но мой клиентский JavaScript не может подключиться. Я пытаюсь сделать это на чистой установке Ubuntu Server x64 - я установил apache2, php5 и убедился, что расширение сокета PHP включено; сервер отлично работает для целей, отличных от веб-сокетов.
Есть ли параметр конфигурации, который мне не хватает? Я пробовал выключить брандмауэр (через ufw disable
). Будем очень признательны за любые подсказки.
РЕДАКТИРОВАТЬ
Вот используемая мной библиотека PHP: https://github.com/Flynsarmy/PHPWebSocket-Chat
Я понял, что на самом деле мне не понадобится apache для того, что я делаю - мне нужно, чтобы входящие запросы принимались и интерпретировались PHP. Есть ли способ гарантировать, что все входящие запросы доступны моей программе PHP?
Вы используете модуль apache для веб-сокетов? Существует довольно много реализованных PHP-серверов websocket, которые вы можете попробовать. Вот несколько, http://www.spoutserver.com/ , http://code.google.com/p/phpwebsocket/ , http://socketo.me/ . Если вы посмотрите вокруг, есть еще пара. Если вы предоставите более подробную информацию о вашей среде и реализации, вам будет проще получить помощь.
ОБНОВИТЬ:
Измените строку 62 с in https://github.com/Flynsarmy/PHPWebSocket-Chat/blob/master/server.php к
$ Server-> wsStartServer ('0.0.0.0', 9300);
или IP-адрес вашего внешнего LAN-IP, и он должен работать. После изменения перезапустите server.php.
Насколько я могу судить, пакеты Apache, предоставляемые Ubuntu, не поддерживают веб-сокеты, а в Precise Pangolin нет пакета, содержащего mod_websocket.so
какой Модуль Apache который обеспечивает поддержку веб-сокетов. Вам нужно будет установить модуль вручную или изменить рабочую среду, чтобы использовать тот же веб-сервер, что и при разработке.