2010-04-05 162 views
0

我已經在我的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

回答

0

有時你只需要在線上偷看,看看到底發生了什麼。 Windump(tcpdump)是您在這些情況下的朋友。

1

SELinux的需要被關閉,或者讓apache的交談XMPP

1

許多服務器默認不回送設備上聽,或者只在:: 1或127.0.0.1監聽和本地主機都指向另一個。檢查做:

% netstat -an | grep 5222 

,並檢查監聽線,顯示在您的服務器監聽輸出。

最後,嘗試明確使用您的box的IP地址作爲連接主機名。

相關問題