/**
  * @param array $config
  */
 private function remit(array $config)
 {
     if ($config["remit"]["driver"] === "zeromq") {
         $config["remit"]["server"] += ["host" => "127.0.0.1"];
         $config["remit"]["client"] += ["host" => "127.0.0.1"];
         $this->server = new ZeroMqServer(new InMemoryLocation($config["remit"]["server"]["host"], $config["remit"]["server"]["port"]));
         $this->client = new ZeroMqClient(new InMemoryLocation($config["remit"]["client"]["host"], $config["remit"]["client"]["port"]));
     }
     $this->server->addListener("r", function ($result, $id) {
         if (isset($this->deferred[$id])) {
             $this->deferred[$id]->resolve($result);
             unset($this->deferred[$id]);
         }
     });
     $this->server->addListener("e", function ($error, $id) {
         if (isset($this->deferred[$id])) {
             $this->deferred[$id]->reject($error);
             unset($this->deferred[$id]);
         }
     });
     $this->server->addListener("dd", function () {
         $this->server->disconnect();
         $this->client->disconnect();
     });
     Loop\periodic(0, function () {
         $this->server->tick();
     });
 }
Example #2
0
 /**
  * @inheritdoc
  *
  * @param string $name
  * @param array  $parameters
  *
  * @return $this
  */
 public function emit($name, array $parameters = array())
 {
     $this->server->emit($name, $parameters);
     return $this;
 }