Protocolo XMPP
Definição
XMPP (RFC 3920) é o acrônimo para Extensible Messaging and Presence Protocol, era conhecido anteriormente por Jabber. Embora sua popularidade esteja maior nos dias atuais, Jeremie Miller iniciou o projeto em 1998, tendo sua principal versão lançada ao público em 2000.
O XMPP é um padrão aberto e é uma alternativa a protocolos proprietários de aplicações como o MSN Messenger.
O ponto chave do protocolo é o princípio de gateways, que possibilitam a comunicação de uma rede XMPP com outras redes que usam diferentes protocolos. Dessa forma, é possível que uma aplicação XMPP se comunique com contas de outros serviços, como MSN, ICQ, etc.
Servidores
Para uma lista completa de servidores XMPP acesse: http://xmpp.org/xmpp-software/clients/
Estudo de caso: Openfire
Como exemplo, segue a instalação do servidor Openfire, produzido pela Ignite Realtime
A instalação é extremamente simples, mas primeiro devemos instalar o Java JRE e JDK:
aptitude install -y default-jre openjdk-6-jdk
Também é necessário a instalação de um banco de dados, nesse caso, será usado o MySQL:
aptitude install -y mysql-server mysql-client
Agora instalamos o Openfire:
wget http://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_3_7_0.tar.gz
mv downloadServlet\?filename\=openfire%2Fopenfire_3_7_0.tar.gz openfire.tar.gz
tar -zxvf openfire.tar.gz
mv openfire /opt/
O próximo passo é configurar uma base no MySQL que será usada pelo Openfire:
- Primeiro acessamos o console do banco
mysql -u root -p
- O diretório do Openfire possui um script pronto que monta a base de dados, só é necessário informar isso para o MySQL
mysql> create database openfire;
mysql> use openfire;
mysql> grant all privileges on openfire.* to openfire@localhost identified by 'senha';
mysql> flush privileges;
mysql> source /opt/openfire/resources/database/openfire_mysql.sql;
mysql> quit;
Agora é só iniciar o servidor:
cd /opt/openfire/bin/
./openfire start
O resto da configuração é feita por uma interface Web, disponível em http://localhost:9090. Essa porta é a porta de gerenciamento do Openfire.
Clientes
Para uma lista completa de clientes XMPP acesse: http://xmpp.org/xmpp-software/servers/