0

我已经在我的 Windows 机器上本地设置了一个 ejabberd 安装,在那里我还有 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 在端口 80 上打开到 localhost 的简单连接也可以。)

有任何想法吗?我被困住了!

4

3 回答 3

1

selinux 需要关闭,或者允许 apache 与 xmpp 对话

于 2012-06-06T04:03:00.113 回答
1

许多服务器默认不监听环回设备,或者只监听 ::1 或 127.0.0.1 并让 localhost 指向另一个。通过以下方式检查:

% netstat -an | grep 5222

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

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

于 2012-06-06T06:03:26.183 回答
0

有时您只需要在线上窥视一下就可以确切地看到发生了什么。 在这些情况下, Windump(tcpdump)是你的朋友。

于 2010-04-05T23:40:12.210 回答