Comentarios en tiempo real con Pusher
adrianalonso.es
web developer
Objetivo
- Sistema de comentarios
- Actualización en tiempo real
- Chat
- Sin recarga y sin Ajax
- Websockets
Herramienta
¿Que es un websocket?
- Tecnología que permite comunicación bidireccional
- Diseñada para navegadores y servidores web
- Proceso de normalización por el W3C
Pusher
- Infastructure as a service
- Abstracción protocolo websockets
- Monitorización y estadística
- Push Notifications
- Comunicación puede ser iniciada por el servidor
- Sistema de Eventos
- Librerías para distintos lenguajes
Version FREE
Para el ejemplo hemos empleado una versión gratuita de Pusher para demostrar lo que nos permite hacer. Esta version free nos permite tener un máximo de 20 conexiones simultaneas y manejar 100.000 mensaje al día, lo cual nos puede permite probar como implementar nuestros servicios en tiempo real sin pensar inicialmente en la infraestructura ni las necesidades de la plataforma.
Integración con Symfony
LopiPusherbundle https://github.com/laupiFrpar/LopiPusherBundle
# app/config/config.yml
lopi_pusher:
app_id: <your_app_id>
key: <your_key>
secret: <your_secret>
# Default configuration
debug: false # true if you want use the debug of all requests
host: http://api.pusherapp.com
port: 80
timeout: 30
# optional if you want to use private or presence channels
# see the section about "Private and Presense channel auth" below
auth_service_id: <the_auth_service_id>
Ejemplo Servidor
$comment= new Comment();
$comment->setComment($commentText);
$comment->setGame($game);
$comment->setUser($user);
$dm->persist($comment);
$dm->flush();
$pusher = $this->get('lopi_pusher.pusher');
$serializer = $this->get('jms_serializer');
pusher->trigger('comments-channel',
'comments-'.$idGame, $serializer->serialize($comment, 'json'));
Ejemplo Cliente
var pusher = new Pusher(‘apikey’);
var channel = pusher.subscribe('comments-channel');
channel.bind('comments-{{game.id}}', function(data) {
obj = JSON.parse(data);
// realizar acciones
});
GRACIAS
http://adrianalonso.es/2014/08/comentarios-en-tiempo-real-en-tu-aplicacion-web/
Comentarios en tiempo real con Pusher
By Adrián Alonso Vega
Comentarios en tiempo real con Pusher
- 828