summaryrefslogtreecommitdiff
path: root/scripts/xmppqueuehandler.php
diff options
context:
space:
mode:
authorEvan Prodromou <evan@prodromou.name>2008-08-29 16:03:52 -0400
committerEvan Prodromou <evan@prodromou.name>2008-08-29 16:03:52 -0400
commitf5fe013657ced6920e3fe794a2a8d4122a85e377 (patch)
tree3495a0e116cbcbe052921634cd0c940c1920a3f2 /scripts/xmppqueuehandler.php
parenta0f726fb6cc42bd1390ab08164329f60e5333435 (diff)
many jabber queue management changes
Added a method to QueueManager to let subclasses do stuff when idle. Needed so that XMPP queue manager can service its message queue. Cleaned up jabber_broadcast_message quite a bit. Use custom joins instead of loop-and-query, should fix some problems with users who are getting messages even after turning off notification. Only build $msg and $entry once, and use the XMPPHP function for messages with a payload, rather than rolling our own. darcs-hash:20080829200352-84dde-427e4ca8c81d4222a36f78e7c580b611ff0bf765.gz
Diffstat (limited to 'scripts/xmppqueuehandler.php')
-rwxr-xr-xscripts/xmppqueuehandler.php11
1 files changed, 11 insertions, 0 deletions
diff --git a/scripts/xmppqueuehandler.php b/scripts/xmppqueuehandler.php
index 3f632d5a8..83928982b 100755
--- a/scripts/xmppqueuehandler.php
+++ b/scripts/xmppqueuehandler.php
@@ -34,6 +34,8 @@ require_once(INSTALLDIR . '/lib/queuehandler.php');
set_error_handler('common_error_handler');
class XmppQueueHandler extends QueueHandler {
+
+ var $conn = NULL;
function transport() {
return 'jabber';
@@ -42,15 +44,24 @@ class XmppQueueHandler extends QueueHandler {
function start() {
# Low priority; we don't want to receive messages
$this->conn = jabber_connect($this->_id, NULL, -1);
+ $this->conn->addEventHandler('message', 'forward_message', $this);
return !is_null($this->conn);
}
function handle_notice($notice) {
return jabber_broadcast_notice($notice);
}
+
+ function idle() {
+ # Process the queue for a second
+ $this->conn->processTime(1);
+ }
function finish() {
}
+
+ function forward_message(&$pl) {
+ }
}
mb_internal_encoding('UTF-8');