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() {
$this->log(LOG_INFO, "INITIALIZE");
# Low priority; we don't want to receive messages
$this->conn = jabber_connect($this->_id);
if ($this->conn) {
$this->conn->addEventHandler('message', 'forward_message', $this);
jabber_send_presence("Send me a message to post an notice", 'available', NULL, 'available', -1);
}
$this->conn = jabber_connect($this->_id, NULL, -1);
$this->conn->addEventHandler('message', 'forward_message', $this);
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) {
return jabber_public_notice($notice);
}

View File

@ -48,14 +48,16 @@ class XmppConfirmHandler {
function start() {
# Low priority; we don't want to receive messages
$this->log(LOG_INFO, "INITIALIZE");
$this->conn = jabber_connect($this->_id);
if ($this->conn) {
$this->conn->addEventHandler('message', 'forward_message', $this);
jabber_send_presence("Send me a message to post an notice", 'available', NULL, 'available', -1);
}
$this->conn = jabber_connect($this->_id, NULL, -1);
$this->conn->addEventHandler('message', 'forward_message', $this);
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() {
$this->log(LOG_INFO, 'checking for queued confirmations');
do {

View File

@ -75,10 +75,16 @@ class XMPPDaemon {
function handle() {
$this->conn->addEventHandler('message', 'handle_message', $this);
$this->conn->addEventHandler('presence', 'handle_presence', $this);
$this->conn->addEventHandler('reconnect', 'handle_reconnect', $this);
$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) {
$user = User::staticGet('jabber', jabber_normalize_jid($from));
return $user;

View File

@ -44,14 +44,16 @@ class XmppQueueHandler extends QueueHandler {
function start() {
$this->log(LOG_INFO, "INITIALIZE");
# Low priority; we don't want to receive messages
$this->conn = jabber_connect($this->_id);
if ($this->conn) {
$this->conn->addEventHandler('message', 'forward_message', $this);
jabber_send_presence("Send me a message to post an notice", 'available', NULL, 'available', -1);
}
$this->conn = jabber_connect($this->_id, NULL, -1);
$this->conn->addEventHandler('message', 'forward_message', $this);
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) {
return jabber_broadcast_notice($notice);
}