Como vincular o soquete ZeroMQ à biblioteca de soquetes da web Ratchet para criar aplicativos em tempo real para aplicativos php?

Eu sou apenas um iniciante em toda essa área envolvendo websocket, Ratchet e ZeroMQ.

Para meu entendimento básico:

websocket é algo que ajuda a criar uma conexão aberta entre servidor e cliente.

Ratchet é uma biblioteca baseada em PHP que usa as principais funções de soquete do PHP para criar uma estrutura de soquete PHP, o que nos permite facilitar a programação de soquetes PHP.

ZeroMQ é uma biblioteca de soquetes que ajuda o aplicativo que não é de catraca a (outro script PHP) a enviar os dados pelo Ratchet Socket e pelo Web-socket.

Estou seguindo o tutorial encontrado na catraca sobre 'olá mundo' e 'empurrador', mas ambos parecem incompletos e apenas ensinam como trabalhar apenas com o console. Também encontrei exemplo de catraca no github, mas não está devidamente documentado. Eu estava procurando por um exemplo completo (com uma página html dedicada e javascript)

Abaixo está o código no qual estou trabalhando: Este é um dos métodos do controlador para o qual estou fazendo uma solicitação do Ajax. Este método criará uma nova postagem (digamos). Quero atualizar a lista de postagens dinamicamente no navegador de vários clientes transmitindo / pressionando com a ajuda do ZeroMq.

Um método em um controlador:

public function create_new_post(){
    // ------
    // code to create a new post.
    // -------

    // After creating a post
    $response = [
        'new_post_title'    => $title,
        'post_id'           => $id
    ];

    $context = new ZMQContext();
    $socket = $context->getSocket(ZMQ::SOCKET_PUSH, 'my pusher');
    $socket->connect("tcp://localhost:8000");
    $socket->send(json_encode($response));

}

Arquivo de empurrador:

use Ratchet\ConnectionInterface;
use Ratchet\Wamp\WampServerInterface;

class Pusher implements WampServerInterface{

     public function onPostEntry($data){
         // Data that were sent by ZeroMQ through create_new_post() method
         $entry_data = json_decode($data);      

         // AND AFTER THIS, I DONT HAVE CLUE OF WHAT TO DO NEXT !!             

     }
}

Shell Script para executar o servidor:

require dirname(__DIR__) . '/vendor/autoload.php';

$loop   = React\EventLoop\Factory::create();
$pusher = new MyApp\Pusher;

// Listen for the web server to make a ZeroMQ push after an ajax request
$context = new React\ZMQ\Context($loop);
$pull = $context->getSocket(ZMQ::SOCKET_PULL);
$pull->bind('tcp://127.0.0.1:8000'); 
$pull->on('message', array($pusher, 'onBidEntry'));

// Set up our WebSocket server for clients wanting real-time updates
$webSock = new React\Socket\Server($loop);
$webSock->listen(8080, '0.0.0.0'); 
$webServer = new Ratchet\Server\IoServer(
    new Ratchet\Http\HttpServer(
        new Ratchet\WebSocket\WsServer(
            new Ratchet\Wamp\WampServer(
                $pusher
            )
        )
    ),
    $webSock
);

$loop->run();

O script de shell apenas informa que ele servirá na porta 8080, no entanto, como eu mencionaria minhas rotas. Digamos que eu quero a conexão aberta apenas na página 'mysite / allposts'. Além disso, qual seria o script que eu tenho que escrever no lado do cliente (um arquivo javascript) e como receber esses novos dados pelo lado do cliente atualizando um objeto DOM específico.

questionAnswers(1)

yourAnswerToTheQuestion