Пример #1
0
 /**
  * Send Rpc Request
  *
  * @param Request $request
  * @return mixed
  * @throws InitiallyRpcException
  */
 public function send(Request $request)
 {
     $interface = $request->getInterface();
     $service = ConfigFactory::getClient()->getService($interface);
     $url = $service->getUrl();
     $requestRaw = Formatter::serialize($request);
     $responseRaw = $this->protocol->sendData($url, $requestRaw);
     $response = @Formatter::unserialize($responseRaw);
     if (!$response instanceof Response) {
         LoggerProxy::getInstance()->error("illegal response", array($responseRaw));
         throw new InitiallyRpcException("illegal response");
     } elseif ($response->isHasException()) {
         $exception = $response->getException();
         if (is_object($exception) && $exception instanceof Exception) {
             throw $exception;
         } else {
             if (is_string($exception)) {
                 if (class_exists($exception)) {
                     throw new $exception($response->getExceptionMessage());
                 } else {
                     throw new InitiallyRpcException($response->getExceptionMessage());
                 }
             }
         }
     }
     return $response->getResult();
 }
Пример #2
0
 /**
  * @return Request
  */
 public function receive()
 {
     $requestRaw = file_get_contents("php://input");
     $request = Formatter::unserialize($requestRaw);
     return $request;
 }