/** * @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(); }); }
/** * @inheritdoc * * @param string $name * @param array $parameters * * @return $this */ public function emit($name, array $parameters = array()) { $this->server->emit($name, $parameters); return $this; }