/**
  * Sends a message through the channel
  *
  * @param string $message
  * @return array
  */
 public function send($message, $type = WrenchProtocol::TYPE_TEXT, $masked = true, array $options = array())
 {
     $except = isset($options['except']) ? $options['except'] : false;
     $clients = $this->clients;
     if ($except instanceof Connection) {
         $except = array($except);
     }
     if (is_array($except)) {
         foreach ($except as $connection) {
             if ($connection instanceof Connection) {
                 unset($clients[$connection->getId()]);
             }
         }
     }
     $collected = array();
     foreach ($clients as $client) {
         $collected[] = $client->send(Protocol::toString(Protocol::TYPE_MESSAGE, $this->topic, $message), $type, $masked);
     }
     return $collected;
 }
 /**
  * Logs an application error
  *
  * @see Varspool\WebsocketBundle\Application.Application::log()
  */
 public function log($message, $level = 'info', Connection $client = null)
 {
     if ($this->debug) {
         parent::log($message, $level);
         if ($this->remoteLogging) {
             $log = new stdClass();
             $log->type = 'log';
             $log->level = $level;
             $log->message = $message;
             $log = $this->getJsonPayload($log);
             if ($client) {
                 $client->send(Protocol::toString(Protocol::TYPE_MESSAGE, self::TOPIC_LOG_SERVER, $log));
             } else {
                 $this->getChannel(self::TOPIC_LOG_SERVER)->send($log);
             }
         }
     }
 }