diff options
author | Federico Marani <federico.marani@ymail.com> | 2009-03-28 17:55:20 +0000 |
---|---|---|
committer | Federico Marani <federico.marani@ymail.com> | 2009-03-28 17:55:20 +0000 |
commit | 5e9ff6ae973423c06ac42c679f4ad67a46a77bd0 (patch) | |
tree | f3763a0a63a3c377709b3e17818ac245f07b1073 /lib | |
parent | 4b3f022fc2ff142e6d1cb6740b7f89108cfda292 (diff) |
Testing JMS message selectors for notice tags-based routing
Diffstat (limited to 'lib')
-rw-r--r-- | lib/util.php | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/lib/util.php b/lib/util.php index 4e09bffce..79d5cc943 100644 --- a/lib/util.php +++ b/lib/util.php @@ -868,20 +868,38 @@ function common_enqueue_notice($notice) } common_log(LOG_DEBUG, 'complete remote queueing notice ID = ' . $notice->id . ' for ' . $transport); } + + //send tags as headers, so they can be used as JMS selectors + common_log(LOG_DEBUG, 'searching for tags ' . $notice->id); + $tags = array(); + $tag = new Notice_tag(); + $tag->notice_id = $notice->id; + if ($tag->find()) { + while ($tag->fetch()) { + common_log(LOG_DEBUG, 'tag found = ' . $tag->tag); + array_push($tags,$tag->tag); + } + } + $tag->free(); + $con->send('/topic/laconica.'.$notice->profile_id, $notice->content, array( 'profile_id' => $notice->profile_id, - 'created' => $notice->created + 'created' => $notice->created, + 'tags' => implode($tags,' - ') ) ); + common_log(LOG_DEBUG, 'sent to personal topic ' . $notice->id); $con->send('/topic/laconica.allusers', $notice->content, array( 'profile_id' => $notice->profile_id, - 'created' => $notice->created + 'created' => $notice->created, + 'tags' => implode($tags,' - ') ) ); + common_log(LOG_DEBUG, 'sent to catch-all topic ' . $notice->id); $result = true; } else { |