public function dispatch(Wildfire_Message $message) { if (!$message->getProtocol()) { $message->setProtocol($this->protocol); } if (!$message->getSender()) { $message->setSender($this->sender); } if (!$message->getReceiver()) { $message->setReceiver($this->receiver); } $this->channel->enqueueOutgoing($message); }
private function sendPointerMessage($channel, $key) { // pointer message should only be sent once if (isset($this->pointerMessages[$key])) { return; } // create a pointer message to be sent instead of the original messages $message = new Wildfire_Message(); $message->setProtocol('http://registry.pinf.org/cadorn.org/wildfire/@meta/protocol/component/0.1.0'); $message->setSender('http://registry.pinf.org/cadorn.org/wildfire/packages/lib-php/lib/Wildfire/Transport.php'); $message->setReceiver(self::RECEIVER_ID); $message->setData(Wildfire_Util::json_encode($this->getPointerData($key))); // send the pointer message through the channel bypassing all transports and local receivers $channel->enqueueOutgoing($message, false, true); $this->pointerMessages[$key] = $message; }
public function testMultipleReceivers() { $channel = new Wildfire_MessageTest__Wildfire_Channel_HttpHeader(); $dispatcher = new Wildfire_Dispatcher(); $dispatcher->setChannel($channel); $message = new Wildfire_Message(); $message->setData('Hello World'); $message->setMeta('{"line":10}'); $message->setProtocol('http://registry.pinf.org/cadorn.org/wildfire/@meta/protocol/component/0.1.0'); $message->setSender('http://pinf.org/cadorn.org/wildfire/packages/lib-php'); $message->setReceiver('http://pinf.org/cadorn.org/fireconsole'); $dispatcher->dispatch($message); $message->setReceiver('__TEST__'); $dispatcher->dispatch($message); $channel->flush(); $this->assertEquals(array('x-wf-protocol-1' => 'http://registry.pinf.org/cadorn.org/wildfire/@meta/protocol/component/0.1.0', 'x-wf-1-index' => '2', 'x-wf-1-1-receiver' => 'http://pinf.org/cadorn.org/fireconsole', 'x-wf-1-1-1-sender' => 'http://pinf.org/cadorn.org/wildfire/packages/lib-php', 'x-wf-1-1-1-1' => '23|{"line":10}|Hello World|', 'x-wf-1-2-receiver' => '__TEST__', 'x-wf-1-2-1-sender' => 'http://pinf.org/cadorn.org/wildfire/packages/lib-php', 'x-wf-1-2-1-2' => '23|{"line":10}|Hello World|'), $channel->getMessageParts()); }
public function parse__enqueueMessage(&$messages, $index, $receiver, $sender, $value) { if (!$messages[$receiver]) { $messages[$receiver] = array(); } preg_match_all('/^(.*?[^\\\\])?\\|(.*)$/', $value, $m); $message = new Wildfire_Message(); $message->setReceiver($receiver); $message->setSender($sender); $message->setMeta($m[1][0] ? str_replace('|', '|', $m[1][0]) : null); $message->setData(str_replace('|', '|', $m[2][0])); $message->setProtocol('http://registry.pinf.org/cadorn.org/wildfire/@meta/protocol/component/0.1.0'); $messages[$receiver][] = array($index, $message); }