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

Предоставление разрешения PHP на отправку / получение запросов

Я написал сервер веб-сокетов PHP на основе этой библиотеки: https://github.com/Flynsarmy/PHPWebSocket-Chat

Эта библиотека работает как сервер и обрабатывает все входящие запросы. Клиент может подключиться, когда я работаю локально (подключение к адресу 127.0.0.1:9300), но я не могу подключиться, если мой клиент не находится на машине, на которой запущен сервер. Я попытался отключить брандмауэр; есть ли еще одна привилегия, которую мне нужно предоставить PHP, чтобы он мог получать и отвечать на сообщения через веб-сокет?

Я запускаю PHP5, Ubuntu Server 12.04 LTS и подключаюсь к Google Chrome (последняя версия).

 From line 62 of https://github.com/Flynsarmy/PHPWebSocket-Chat/blob/master/server.php

// для подключения других компьютеров вам, вероятно, потребуется // изменить его на свой LAN IP или внешний IP, // в качестве альтернативы используйте: gethostbyaddr (gethostbyname ($ _ SERVER ['SERVER_NAME']))

$ Server-> wsStartServer ('127.0.0.1', 9300);

измените эту строку на,

 $Server->wsStartServer('0.0.0.0', 9300);

или IP-адрес вашей локальной сети и попробуйте.

просто отредактируйте server.php; прямо сейчас он слушает только петлю [$ Server-> wsStartServer ('127.0.0.1', 9300); ]. измените его, чтобы прослушивать все IP-адреса [0.0.0.0?] или хотя бы один IP-адрес, назначенный сетевому интерфейсу [eth0? ] вашего сервера.

Файл server.php содержит ответ на вашу проблему

// for other computers to connect, you will probably need to change this to your LAN IP or external IP,
// alternatively use: gethostbyaddr(gethostbyname($_SERVER['SERVER_NAME']))
$Server->wsStartServer('127.0.0.1', 9300);

Изменение последней строки на публичный IP-адрес вашего сервера, вероятно, решит вашу проблему.