PHP не может подключиться к локальному XMPP-серверу через порт 5222 - PullRequest
0 голосов
/ 06 апреля 2010

Я установил установку ejabberd локально на моем компьютере с Windows, где у меня также есть Apache, PHP и MySQL. Я также подтвердил, что он отлично работает с Digsby, и немного пнул шину, создав некоторых пользователей, отправив несколько сообщений и т. Д. Все хорошо.

Однако PHP не может открыть поток, используя stream_socket_client для порта 5222. Даже на самом простом уровне:

stream_socket_client("tcp://localhost:5222", $errno, $errstr, 30, STREAM_CLIENT_CONNECT);

Возвращает ошибку тайм-аута. Однако, опять же, соединение с IM-клиентом к localhost через порт 5222 работает нормально. (Использование stream_socket_client для открытия простого соединения с localhost на порту 80 также работает.)

Есть идеи? Я застрял!

Ответы [ 3 ]

1 голос
/ 06 июня 2012

selinux должен быть отключен или разрешить apache общаться с xmpp

1 голос
/ 06 июня 2012

Многие серверы не слушают на устройстве обратной связи по умолчанию или только слушают :: 1 или 127.0.0.1 и имеют localhost, указывающий на другой.Проверьте, выполнив:

% netstat -an | grep 5222

и проверив вывод для строки LISTEN, которая показывает, где ваш сервер прослушивает.

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

0 голосов
/ 06 апреля 2010

Иногда вам просто нужно взглянуть на линию, чтобы точно узнать, что происходит. Windump (tcpdump) - ваш друг в этих случаях.

...