summaryrefslogtreecommitdiff
path: root/scripts/xmppqueuehandler.php
AgeCommit message (Collapse)Author
2008-08-30eliminate loops in forwardingEvan Prodromou
darcs-hash:20080830090148-84dde-2f5711a22c7e5a868005bb3188a966c0cdde30ab.gz
2008-08-30some fixes from on the jabber serverevan
darcs-hash:20080830083502-5b646-d6a66157d86ca84cfa6cf6280bb2eb17bc20e02d.gz
2008-08-30strtolower jids for comparisonEvan Prodromou
darcs-hash:20080830052143-84dde-81ba3f1e687605d23e9bdc2c3672ac7ae36f9b60.gz
2008-08-30forward messages from queuehandler to listenerEvan Prodromou
The queuehandler sends messages to the user. If the user replies, the messages are typically sent directly to the queuehandler (including resource), not the default bot JID. We add a little code for the xmppqueuehandler to periodically service its queue of received messages. Received messages are forwarded to the listener to deal with. We use XEP 33, 'addresses', to note the original sender. The xmppdaemon checks to see if the 'from' on a message is the daemon address. If so, it looks for a XEP 33 'addresses' stanza, with an 'ofrom' address, which shows who it was originally is from. This should let us send from one resource ID and still process incoming messages in a different connection. darcs-hash:20080830040717-84dde-59c75bfb107a1dd5fd531106751b4544bfd15656.gz
2008-08-29many jabber queue management changesEvan Prodromou
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
2008-08-29split public stream to its own queue handlerEvan Prodromou
Add another queue handler for the public stream. Should further parallelize the work of sending out messages. darcs-hash:20080829181702-84dde-594505aa73d2380b13bd98917b70b02bac597d12.gz
2008-08-27return correct values for success in handling messagesEvan Prodromou
darcs-hash:20080828011002-84dde-8099da64841ab137e915249025857f34084c0f34.gz
2008-08-27XmppQueueHandler extends QueueHandler tooEvan Prodromou
darcs-hash:20080828004224-84dde-01ba0a7b9105629b1eb8a28a1a9702912e7e9da6.gz
2008-08-27correct return values from start() in queue handlersEvan Prodromou
darcs-hash:20080828003013-84dde-7c8323ef348960f58590e872b2c4ab37107ba60a.gz
2008-08-27break up monolithic xmppdaemon into multiple queue handlersEvan Prodromou
Eventually, the poor xmppdaemon has become overloaded with extra tasks. So, I've broken it up. Now, we have 5 background scripts, and more coming: * xmppdaemon.php - handles incoming XMPP messages only. * xmppqueuehandler.php - sends notices from the queue out through XMPP. * smsqueuehandler.php - sends notices from the queue out over SMS * ombqueuehandler.php - sends notices from the queue out over OMB * xmppconfirmhandler.php - sends confirmation requests out over XMPP. This is in addition to maildaemon.php, which takes incoming messages. None of these are "true" daemons -- they don't daemonize themselves automatically. Use nohup or another tool to background them. monit can also be useful to keep them running. At some point, these might become fork()'ing daemons, able to handle more than one notice at a time. For now, I'm just running multiple instances, hoping they don't interfere. darcs-hash:20080827205407-84dde-97884a12f5f4e54c93bc785bd280683d1ee7e749.gz