domingo, 14 de octubre de 2012

Stomp en PHP


Stomp es una extensión que permite a aplicaciones php comunicarse con cualquier Message Brokers compatible con el protocolo STOMP, a través de sencillas interfaces procedurales orientadas a objetos.

Esta extensión nos permite leer o enviar mensajes a una cola, dicha cola esta implementada con el ActiveMQ que ha sido implementada en el proyecto del curso para poder resolver el tema de mensajería.

Para poder utilizar Stomp desde nuestra aplicación PHP tenemos que incluir la librería:

require_once("../Stomp.php");

Luego procedemos a implementar a quien va a enviar los mensajes a la cola:

<?php
$queue1 = '/queue/queue1';
try {
    $stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
    die('Connection failed: ' . $e->getMessage());
}
for($i=1;$i<10;$i++) {
    $msg1 = "queue one my data".$i;
    $stomp->send($queue1, $msg1, array('persistent' => 'true'));
}
unset($stomp);
?>


Teniendo ya nuestro método que envía los mensajes a la cola, continuamos creando al consumidor, quien se encargará finalmente de sacar los mensajes de la cola para procesarlos:

<?php
$queue1 = '/queue/queue1';
try {
    $stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
    die('Connection failed: ' . $e->getMessage());
}

$stomp->subscribe($queue1);
while(1) {
    $frame = $stomp->readFrame();
    if ( $frame != null) {
        echo $frame->body; //process your message
        echo "\n";
        $stomp->ack($frame);
    }
}

unset($stomp);
?>


De esta manera rápida y sencilla podemos atender y enviar los mensajes a una cola para que sean procesados de la manera que uno crea conveniente para su aplicación en uso.


No hay comentarios:

Publicar un comentario