Added pinging to keep connection open
This commit is contained in:
parent
067633a608
commit
7cd52847a5
@ -31,6 +31,8 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
|
|||||||
|
|
||||||
class IrcManager extends ImManager {
|
class IrcManager extends ImManager {
|
||||||
protected $conn = null;
|
protected $conn = null;
|
||||||
|
protected $lastPing = null;
|
||||||
|
|
||||||
protected $regchecks = array();
|
protected $regchecks = array();
|
||||||
protected $regchecksLookup = array();
|
protected $regchecksLookup = array();
|
||||||
|
|
||||||
@ -63,6 +65,18 @@ class IrcManager extends ImManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Idle processing for io manager's execution loop.
|
||||||
|
* Send keepalive pings to server.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function idle($timeout = 0) {
|
||||||
|
if (empty($this->lastPing) || time() - $this->lastPing > 120) {
|
||||||
|
$this->send_ping();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Process IRC events that have come in over the wire.
|
* Process IRC events that have come in over the wire.
|
||||||
*
|
*
|
||||||
@ -232,4 +246,14 @@ class IrcManager extends ImManager {
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sends a ping
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
protected function send_ping() {
|
||||||
|
$this->lastPing = time();
|
||||||
|
$this->conn->send('PING', $this->lastPing);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user