/** * @param Character $char * * @return bool|string */ public function render(Character $char) { $socket = new CallbackClient($this->socket); // outgoing packet $msg = new CallbackMessage('RENDER'); $msg->setPayload($char->getBuffer()); $socket->sendMessage($msg); // incoming packet $msg = new CallbackMessage(); try { $socket->waitMessage($msg); } catch (\RuntimeException $ex) { // received partial message // message is not decoded, so getName() will return empty string } if ($msg->getName() == 'PNG') { $result = $msg->getPayload(); if ($char->isFaceShot()) { $result = $this->doFaceShot($char, $result); } } else { $result = false; } return $result; }
public function testSerialOut() { $buf = "" . "WRITE" . "payload"; $payload = 'payload'; $message = new CallbackMessage('WRITE'); $message->setPayload($payload); $out = new MemStream(); $message->serial($out); $this->assertEquals('WRITE', $message->getName()); $this->assertEquals('payload', $message->getPayload()); $this->assertEquals($buf, $out->getBuffer()); }