/**
  * @param array|string $data
  * @param string       $routeName
  * @param array[]      $routeParameters
  * @param array        $context
  *
  * @return string|\Symfony\Component\Serializer\Encoder\scalar
  */
 public function push($data, $routeName, array $routeParameters = array(), array $context = [])
 {
     $channel = $this->router->generate($routeName, $routeParameters);
     $message = new Message($channel, $data);
     return $this->doPush($this->serializer->serialize($message), $context);
 }