Ben Werdmuller
Ben Werdmuller

Reputation: 185

PHP can't connect to localhost XMPP server on port 5222

I've set up an ejabberd install locally on my Windows box, where I also have Apache, PHP and MySQL. I've also confirmed that it works great using Digsby, and have kicked the tires a bit by creating some users, sending some messages, etc. All good.

However, PHP can't open a stream using stream_socket_client to port 5222. Even at its simplest level:

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

Returns a timeout error. However, again, connecting with an IM client to localhost on port 5222 works fine. (Using stream_socket_client to open a simple connection to localhost on port 80 also works.)

Any ideas? I'm stuck!

Upvotes: 0

Views: 3125

Answers (3)

Joe Hildebrand
Joe Hildebrand

Reputation: 10414

Many servers don't listen on the loopback device by default, or only listen on ::1 or 127.0.0.1 and have localhost pointing to the other. Check by doing:

% netstat -an | grep 5222

and checking the output for a LISTEN line that shows where your server is listening.

Finally, try using the IP address of your box explicitly as the connection hostname.

Upvotes: 1

Roger Wrethman
Roger Wrethman

Reputation: 11

selinux needs to be off, or allow apache to talk to xmpp

Upvotes: 1

Bill
Bill

Reputation: 2633

Sometimes you just need to peek on the line to see exactly what is going on. Windump(tcpdump) is your friend in these cases.

Upvotes: 0

Related Questions