【发布时间】:2009-06-03 00:32:16
【问题描述】:
假设您现在连接到一个 jabber 服务器,
那么如何检查与 jabber 服务器的连接是否丢失?
【问题讨论】:
-
有很多与 Jabber 相关的问题来自这个方向。是否值得买一本关于 XMPP/Jabber 的书,比如 XMPP 权威指南和一本好的 PHP 书?
标签: php connection
假设您现在连接到一个 jabber 服务器,
那么如何检查与 jabber 服务器的连接是否丢失?
【问题讨论】:
标签: php connection
试试 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";
}
【讨论】:
我不完全确定 Jabber 与任何其他协议相比如何工作,但我相信您需要与服务器建立套接字连接,例如:
$endpoint = "SERVER";
$fp = fopen( $endpoint, "r" ) or die();
while ( ! feof( $fp )){
// Heavy duty work goes here.
print fgets( $fp, 1024 );
}
while() 循环将一直运行,直到套接字连接停止向 PHP 脚本返回数据。因此,只要您的逻辑在一个这样的 while() 循环中,它应该离开 while() 循环的唯一时间是在连接终止时。
【讨论】: