/**
  * Triggered when a client sends data through the socket
  * @param  \Ratchet\ConnectionInterface $from The socket/connection that sent the message to your application
  * @param  string $msg The message received
  * @throws \Exception
  */
 function onMessage(ConnectionInterface $from, $msg)
 {
     $clientMessageArray = json_decode($msg, true);
     if (!isset($clientMessageArray['action'])) {
         throw new SignalingServerException("Client message should contain action key");
     }
     switch ($clientMessageArray['action']) {
         case ClientMessageAction::OWNER_ENTER():
             $this->processForOwnerEnterMessage($from, $this->container->get("ws.service.signaling.client_message_factory")->createOwnerEnterMessage($msg));
             break;
         case ClientMessageAction::SUBSCRIBER_ENTER():
             $this->processForSubscriberEnterMessage($from, $this->container->get("ws.service.signaling.client_message_factory")->createSubscriberEnterMessage($msg));
             break;
         case ClientMessageAction::SUBSCRIBER_SEND_DATA():
             $this->processForSubscriberSendDataMessage($from, $this->container->get("ws.service.signaling.client_message_factory")->createSubscriberSendDataMessage($msg));
             break;
         default:
             throw new SignalingServerException("Unknown action in client message");
     }
 }
 /**
  * @return ClientMessageAction
  */
 public function getAction()
 {
     return ClientMessageAction::SUBSCRIBER_SEND_DATA();
 }
 /**
  * @return ClientMessageAction
  */
 public function getAction()
 {
     return ClientMessageAction::OWNER_ENTER();
 }
 /**
  * @return ClientMessageAction
  */
 public function getAction()
 {
     return ClientMessageAction::SUBSCRIBER_ENTER();
 }