PHP无法连接到端口5222上的本地主机XMPP服务器

PHP无法连接到端口5222上的本地主机XMPP服务器

问题描述:

我已经在我的Windows机器上本地设置了ejabberd安装,我也有Apache,PHP和MySQL。我也已经证实,它使用Digsby的效果很好,并通过创建一些用户,发送一些消息等等来刺激轮胎。一切都很好。PHP无法连接到端口5222上的本地主机XMPP服务器

然而,PHP甚至不能在其最简单的层面打开使用stream_socket_client端口5222的流:

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

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

任何想法?我卡住了!

+0

你1)看看有什么错误信息? 2)检查服务器是否正在运行,即在本地主机上? – mauris 2010-04-05 23:49:46

+0

是的,错误消息只是说连接超时: “连接尝试失败,因为连接方在一段时间后没有正确响应,或建立的连接失败,因为连接的主机未能响应。 正如我上面所说的,服务器正在运行,并且可以从标准IM客户端连接到服务器。 – 2010-04-05 23:51:16

有时你只需要在线上偷看,看看到底发生了什么。 Windump(tcpdump)是您在这些情况下的朋友。

SELinux的需要被关闭,或者让apache的交谈XMPP

许多服务器默认不回送设备上听,或者只在:: 1或127.0.0.1监听和本地主机都指向另一个。检查做:

% netstat -an | grep 5222 

,并检查监听线,显示在您的服务器监听输出。

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