Crear un sistema de notificación web con XMPP y PHP

Completísimo tutorial que nos explica como realizar un sistema de notificación web en tiempo real mediante XMPP y PHP. El tutorial nos explica cómo funciona el XMPP, cómo instalar Openfire (yo he usado ejabberd y este no le conozco, si alguien lo conoce que me comente que tal).

En el ejemplo hará uso de jQuery y Strophe para acceder al servidor XMPP.

Build a web-based notification tool with XMPP

Gracias Gerardo por el aviso

iJab: chat javascript usando XMPP/Jabber

iJab es una librería javascript que nos permite añadir chat en nuestras aplicaciones web, con la característica que usa XMPP/Jabber para realizar las comunicaciones.

Entre las características encontramos:

  • Basado en el protocolo XMPP: lo cual permite usar servidores basados en ese protocolo
  • Soporte para MSN y AIM, añadiendo transports al servidor XMPP
  • Totalmente Javascript
  • Compatible con Firefox, IE, Chrome y Safari
  • Themes
  • Modos de aplicación: stant-alone, web chat y live
  • Sin pop-ups
  • Notificaciones de nuevos mensajes
  • Sonido
  • Múltiples usuarios en el chat (MUC)
  • Búsqueda de usuarios
  • Administración: permite añadir y borrar usuarios y administrar grupos
  • Smileys

iJab

Vía / WebAppers

|

Jaxl: librería para Jabber

Jaxl (Jabber XMPP Library) es una librería que nos permite realizar comunicaciones mediante Jabber (el protocolo de IM que usa Gtalk, entre otros). Permite encriptación TLS, autenticación DIGEST-MD5 y PLAIN, administración de servidor y notificación de GMail, entre otras cosas.

Jaxl

Laboratorio: postear en WordPress mediante GTalk o Jabber

Hace tiempo hablaba de una librería para trabajar con Jabber desde PHP y me preguntaban si se podía usar para realizar un cliente y realizar acciones con él. Pues he usado esta librería para crearme un cliente de jabber que espere mensajes y los publique en WordPress, para lo cual también he necesitado la librería phpxmlrpc.

Yo el ejemplo lo he hecho con DreamHost y la posibilidad que ofrece de crear un servidor Jabber, claro que también se puede hacer mediante GTalk.

Lo primero es tener dos cuentas: una para el cliente y otra para ti. Cuando ya las tengamos, deberemos autorizar la una a la otra para que puedan enviarse mensajes. Esto es la parte más chapuza ya que hay que hacerlo con clientes tipo Gtalk o Pidgin.

Tan solo nos queda instalar el script en nuestro servidor o en nuestro ordenador (aunque casi mejor en un servidor) y configurarlo. Se copia en el servidor y se edita el fichero orejas.php y modificar los siguientes valores:

  • $blog_usuario: nombre del usuario del blog
  • $blog_contraseña: contraseña del usuario del blog
  • $blog_url: url del blog de WordPress
  • $blog_xmlrpc_path: path al script xmlrpc de WordPress
  • $blog_puerto: puerto del blog (lo más seguro es que no haya que modificarlo)
  • $post_tags: etiquetas por defecto del post que se va a crear
  • $post_separador: separador para diferenciar en el mensaje entre título, contenido y etiquetas
  • $post_titulo_defecto: título por defecto del post
  • $jabber_host: servidor de Jabber, para GTalk creo que es gtalk.google.com
  • $jabber_usuario: usuario de jabber
  • $jabber_contraseña: contraseña del usuario de jabber
  • $jabber_puerto: puerto del servidor de jabber (lo más seguro es que no haya que modificarlo)

Para postear en WP habrá que mandar un mensaje al cliente con el siguiente formato:

titulo##contenido##etiqueta1,etiqueta2,...,etiquetan

Contenido admite HTML y retornos de carro que serán convertidos en párrafos. Si no se quiere indicar título o etiquetas, pues se puede escribir el contenido solamente. El separador ## es modificable. Cuidado si vais a escribir retornos de carro, porque si pulsas sólo INTRO te enviará el mensaje.

Una vez enviado el mensaje, el script posteará en WP y devolverá la URL del nuevo post.

Supongo que se pueden hacer más cosas y mejor, pero para lo que yo lo necesito me basta y me sobra.

Descarga: orejas

xmpphp: libería Jabber para PHP

xmpphp es una librería que permite realizar acciones sobre el protocolo XMPP, en el cual está basado Jabber o GTalk.

Un ejemplo sencillo para mandar mensajes sería el siguiente:

<?php
include("xmpp.php");
$conn = new XMPP('talk.google.com', 5222, 'username', 'password', 'xmpphp', 'gmail.com', $printlog=False, $loglevel=LOGGING_INFO);
$conn->connect();
$conn->processUntil('session_start');
$conn->message('someguy@someserver.net', 'This is a test message!');
$conn->disconnect();
?>

Una clase que nos puede ayudar mucho en algunas tareas como en el envio de alertas o avisos.

xmpphp

Gracias David por el aviso