2009-06-03 65 views
3

假設你現在已經連接到一個jabber服務器,如何在PHP中測試連接?

那麼你如何檢查你的連接到jabber服務器是否丟失?

+0

有很多的從這個方向來的Jabber相關的問題。可能是值得拿起一本關於XMPP/Jabber的書,比如XMPP的權威指南和一本好的PHP書? – 2009-06-03 01:43:16

回答

1

我不能完全肯定Jabber的運行方式比其他任何協議,但我相信你需要做的套接字連接到服務器上,是這樣的:

$endpoint = "SERVER"; 
$fp = fopen($endpoint, "r") or die(); 
while (! feof($fp)){ 
    // Heavy duty work goes here. 
    print fgets($fp, 1024); 
} 

這一段時間()循環將運行,直到套接字連接停止將數據返回給PHP腳本。因此,只要你的邏輯在while()循環之內,它應該離開while()循環的唯一時間就是連接終止。

3

嘗試的fsockopen(http://us3.php.net/fsockopen):

$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30); 
//if the socket failed it's offline... 
if (!$fp) { 
    echo "$errstr ($errno)<br />\n"; 
}