/** * Hängt zusätzliche Informationen an jeden Response an * @param Dragon_Json_Server_Request_Http $request * @param Dragon_Json_Server_Response_Http $response */ public function postDispatch(Dragon_Json_Server_Request_Http $request, Dragon_Json_Server_Response_Http $response) { $lastResponse = $request->getOptionalParam('timestamp'); if (isset($lastResponse) && $lastResponse == -1) { return; } $actualResponse = time(); $messages = array(); if (isset($lastResponse)) { $pluginregistry = Zend_Registry::get('Dragon_Plugin_Registry'); $plugins = $pluginregistry->getPlugins('DragonX_Clientmessage_Plugin_Source_Interface'); foreach ($plugins as $plugin) { $list = $plugin->getClientmessages($lastResponse, $actualResponse); foreach ($list as $record) { if (!isset($messages[$record->key])) { $messages[$record->key] = array(); } try { $record->result = Zend_Json::decode($record->result); } catch (Exception $exception) { } $messages[$record->key][] = array('created' => $record->created, 'result' => $record->result); } } foreach ($messages as $key => &$submessages) { usort($submessages, array($this, '_compareMessages')); } unset($submessages); } $response->setResult(array('result' => $response->getResult(), 'timestamp' => $actualResponse) + $messages); }
/** * Loggt nach jedem Request die Response und den Responsetimestamp * @param Dragon_Json_Server_Request_Http $request * @param Dragon_Json_Server_Response_Http $response */ public function postDispatch(Dragon_Json_Server_Request_Http $request, Dragon_Json_Server_Response_Http $response) { $logicRequest = new DragonX_Log_Logic_Request(); $logicRequest->response($response->toArray()); }