public function messenger(Messenger $messenger = null) { if ($messenger) { $messenger->on('message', function (Message $message) { $this->emit($message->getEvent(), [$message->getContent()]); }); $this->messenger = $messenger; } return $this->messenger; }
public function initialize(Messenger $server, Messenger $client, LoopInterface $loop) { foreach ($this->messages as $message) { $client->on($message->event, function ($arg) use($message, $loop) { $this->assertEquals($arg, $message->arguments); $message->called = true; $this->totalCalled++; if ($this->totalCalled === count($this->messages)) { $loop->stop(); } }); $loop->addTimer(0.001, function () use($server, $message) { $server->send($message->event, $message->arguments); }); } $loop->addTimer(3, function () use($loop) { $loop->stop(); throw new \RuntimeException('Timeout reached, server has not accomplished all messages.'); }); $loop->run(); foreach ($this->messages as $message) { $this->assertTrue($message->called); } }