PHP无法连接到端口5222上的localhost XMPP服务器

时间:2010-04-05 23:32:27

标签: php xmpp ejabberd stream-socket-client

我在我的Windows机器上本地设置了一个ejabberd安装,我也有Apache,PHP和MySQL。我也确认它使用Digsby非常好用,并且通过创建一些用户,发送一些消息等来踢掉一些轮胎。一切都很好。

但是,PHP无法使用stream_socket_client打开流到端口5222.即使是最简单的级别:

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

返回超时错误。但是,再次将端口5222上的IM客户端连接到localhost工作正常。 (使用stream_socket_client在端口80上打开与localhost的简单连接也可以。)

有什么想法吗?我被卡住了!

3 个答案:

答案 0 :(得分:1)

selinux需要关闭,或允许apache与xmpp交谈

答案 1 :(得分:1)

默认情况下,许多服务器不监听环回设备,或只监听:: 1或127.0.0.1并使localhost指向另一个。检查:

% netstat -an | grep 5222

并检查LISTEN行的输出,该行显示服务器正在侦听的位置。

最后,尝试明确使用您的盒子的IP地址作为连接主机名。

答案 2 :(得分:0)

有时您只需要查看该行就能看到究竟发生了什么。在这些情况下,Windump(tcpdump)是您的朋友。