protected function send(PromiseInterface $promise)
{
$pid = $this->protocol->getPid();
$origin = $this->protocol->getOrigin();
$message = $this->message;
$channel = $this->channel;
if ($message instanceof Error || $message instanceof Exception) {
$answer = $channel->createProtocol($message->getMessage())->setPid($pid, true)->setException(get_class($message), true);
} else {
$answer = $channel->createProtocol($message)->setPid($pid, true);
}
$this->channel->send($origin, $answer, Channel::MODE_BUFFER_ONLINE);
return $promise->resolve();
}