add reconnect handlers to main XMPP-handling scripts

darcs-hash:20080902165319-84dde-b6cc255f014e6c5c059905c37c258a6c7a53b39a.gz
This commit is contained in:
Evan Prodromou 2008-09-02 12:53:19 -04:00
parent 695da8311a
commit 7abcee54ea
4 changed files with 27 additions and 15 deletions

View File

@ -42,14 +42,16 @@ class PublicQueueHandler extends QueueHandler {
function start() { function start() {
$this->log(LOG_INFO, "INITIALIZE"); $this->log(LOG_INFO, "INITIALIZE");
# Low priority; we don't want to receive messages # Low priority; we don't want to receive messages
$this->conn = jabber_connect($this->_id); $this->conn = jabber_connect($this->_id, NULL, -1);
if ($this->conn) { $this->conn->addEventHandler('message', 'forward_message', $this);
$this->conn->addEventHandler('message', 'forward_message', $this);
jabber_send_presence("Send me a message to post an notice", 'available', NULL, 'available', -1);
}
return !is_null($this->conn); return !is_null($this->conn);
} }
function handle_reconnect(&$pl) {
$this->conn->processUntil('session_start');
$this->conn->presence(NULL, 'available', NULL, 'available', -1);
}
function handle_notice($notice) { function handle_notice($notice) {
return jabber_public_notice($notice); return jabber_public_notice($notice);
} }

View File

@ -48,14 +48,16 @@ class XmppConfirmHandler {
function start() { function start() {
# Low priority; we don't want to receive messages # Low priority; we don't want to receive messages
$this->log(LOG_INFO, "INITIALIZE"); $this->log(LOG_INFO, "INITIALIZE");
$this->conn = jabber_connect($this->_id); $this->conn = jabber_connect($this->_id, NULL, -1);
if ($this->conn) { $this->conn->addEventHandler('message', 'forward_message', $this);
$this->conn->addEventHandler('message', 'forward_message', $this);
jabber_send_presence("Send me a message to post an notice", 'available', NULL, 'available', -1);
}
return !is_null($this->conn); return !is_null($this->conn);
} }
function handle_reconnect(&$pl) {
$this->conn->processUntil('session_start');
$this->conn->presence(NULL, 'available', NULL, 'available', -1);
}
function handle_queue() { function handle_queue() {
$this->log(LOG_INFO, 'checking for queued confirmations'); $this->log(LOG_INFO, 'checking for queued confirmations');
do { do {

View File

@ -75,10 +75,16 @@ class XMPPDaemon {
function handle() { function handle() {
$this->conn->addEventHandler('message', 'handle_message', $this); $this->conn->addEventHandler('message', 'handle_message', $this);
$this->conn->addEventHandler('presence', 'handle_presence', $this); $this->conn->addEventHandler('presence', 'handle_presence', $this);
$this->conn->addEventHandler('reconnect', 'handle_reconnect', $this);
$this->conn->process(); $this->conn->process();
} }
function handle_reconnect(&$pl) {
$this->conn->processUntil('session_start');
$this->conn->presence('Send me a message to post a notice', 'available', NULL, 'available', 100);
}
function get_user($from) { function get_user($from) {
$user = User::staticGet('jabber', jabber_normalize_jid($from)); $user = User::staticGet('jabber', jabber_normalize_jid($from));
return $user; return $user;

View File

@ -44,14 +44,16 @@ class XmppQueueHandler extends QueueHandler {
function start() { function start() {
$this->log(LOG_INFO, "INITIALIZE"); $this->log(LOG_INFO, "INITIALIZE");
# Low priority; we don't want to receive messages # Low priority; we don't want to receive messages
$this->conn = jabber_connect($this->_id); $this->conn = jabber_connect($this->_id, NULL, -1);
if ($this->conn) { $this->conn->addEventHandler('message', 'forward_message', $this);
$this->conn->addEventHandler('message', 'forward_message', $this);
jabber_send_presence("Send me a message to post an notice", 'available', NULL, 'available', -1);
}
return !is_null($this->conn); return !is_null($this->conn);
} }
function handle_reconnect(&$pl) {
$this->conn->processUntil('session_start');
$this->conn->presence(NULL, 'available', NULL, 'available', -1);
}
function handle_notice($notice) { function handle_notice($notice) {
return jabber_broadcast_notice($notice); return jabber_broadcast_notice($notice);
} }