public function route($event, Message $request, Message $response = null) { $response = $response instanceof Message ? $response : new Response(); $response->setWriteStream($request->getReadStream()); $response->on("ready", function ($event, $response) use($request) { $response->on("sent", [$request, "dispatched"])->send(); }); $this->server->trigger("request", (object) compact("request", "response")); }
public function dispatch(Message $request) { $request->on("read-complete", [$this, "route"]); $request->on("error", function ($event, $request) { $response = new Response(); $response->setWriteStream($request->getReadStream()); $response->setOpCode(Response::OPCODE_CTRL_CLOSE); $response->setBody("Protocol error"); $response->on("sent", [$request, "dispatched"]); $response->send(); }); }