Назад | Перейти на главную страницу

Настройка веб-сокетов PHP

Я написал игру с использованием веб-сокетов 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 который обеспечивает поддержку веб-сокетов. Вам нужно будет установить модуль вручную или изменить рабочую среду, чтобы использовать тот же веб-сервер, что и при разработке.