XMPP Hands-On

921 visualizações

Publicada em

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
921
No SlideShare
0
A partir de incorporações
0
Número de incorporações
7
Ações
Compartilhamentos
0
Downloads
6
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

XMPP Hands-On

  1. 1. XMPP - Mão na Coisa 11/19/08 11:55 AM XMPP Mão na Coisa Pedro Melo simplicidade.org / evolui.com Código e apresentação disponível em http://github.com/melo/codebits/ O Gustavo, o Delfim, e eu estamos pelo Codebits para dúvidas de XMPP. Procurem as T-Shirts com XMPP à frente. Resumo Conversa da treta Preliminares Mão na Coisa Coisa na Mão Coisa na Coisa Resumo (agora a sério) Breve explicação do ambiente Modelo de programação Blocos básicos Pequenos bots Real-time feeds Sincronização de processos Ambiente OpenFire no tabuleiro Perl: Net::XMPP2 Python: Twisted + Wokkel (Hi Jack!) Ruby: EventMachine? Simple::Bot? xmpp4r? Java: Smack C, Loudmouth: Strophe PHP, Class::XMPP JavaScript: Strophe, JsJac Modelo de Programação Event-driven Nada é garantido, timeouts em todo o lado Closures (em linguagens que as tenham) file:///Users/melo/Documents/Work/projects/codebits/2008/xmpp-hands-on/presentation/xmpp-mao_na_coisa.html Page 1 of 4
  2. 2. XMPP - Mão na Coisa 11/19/08 11:55 AM Event loop: se os tiverem, usem Enviar pedido, callback para quando a resposta chegar Hooks para responder a novos pedidos Blocos básicos Três blocos básicos message: fire and forget iq: pergunta/resposta presence: broadcast, gestão de buddies Cada um deles tem atributos comuns to from type id Mas o X em XMPP é de Extensible Blocos básicos: <mesage> Uma mensagem comum 01. <message to=quot;melopt@gmail.com/resquot; from=quot;melo@simplcidade.org/Tabuleiroquot; type= 02. <body>Recebes-te uma mensagem do Paulo! (link)</body> 03. </message> Blocos básicos: <mesage> Agora com uma extensão 01. <message to=quot;melopt@gmail.com/resquot; from=quot;melo@simplcidade.org/Tabuleiroquot; type= 02. <body>Recebes-te uma mensagem do Paulo! (link)</body> 03. <n xmlns=quot;org.simplicidade.proj1quot;> 04. <from>Paulo</from> 05. <link>link</link> 06. <reply>reply_link</reply> 07. </n> 08. </message> Blocos básicos: <mesage> E já agora para não ficar guardada offline 01. <message to=quot;melopt@gmail.com/resquot; from=quot;melo@simplcidade.org/Tabuleiroquot; type= 02. <body>Recebes-te uma mensagem do Paulo! (link)</body> 03. <n xmlns=quot;org.simplicidade.proj1quot;> 04. <from>Paulo</from> 05. <link>link</link> file:///Users/melo/Documents/Work/projects/codebits/2008/xmpp-hands-on/presentation/xmpp-mao_na_coisa.html Page 2 of 4
  3. 3. XMPP - Mão na Coisa 11/19/08 11:55 AM 06. <reply>reply_link</reply> 07. </n> 08. </message> Blocos básicos: <iq> (get) Pergunta... 01. <iq to=quot;melopt@gmail.com/resquot; from=quot;melo@simplicidade.org/Tabuleiroquot; type=quot;getquot; 02. <query xmlns=quot;org.simplicidade.proj1.proto1quot; /> 03. </iq> Blocos básicos: <iq> Resposta... 01. <iq to=quot;melopt@gmail.com/resquot; from=quot;melo@simplicidade.org/Tabuleiroquot; type=quot;resultquot; 02. <query xmlns=quot;org.simplicidade.proj1.proto1quot;> 03. <campo1>valor 1</campo1> 04. <campo2>valor 2</campo2> 05. <campo3>valor 3</campo3> 06. <campo4>valor 4</campo4> 07. </query> 08. </iq> Blocos básicos: <iq> (set) Alteração... 01. <iq to=quot;melopt@gmail.com/resquot; from=quot;melo@simplicidade.org/Tabuleiroquot; type=quot;setquot; 02. <query xmlns=quot;org.simplicidade.proj1.proto1quot;> 03. <campo1>valor 1</campo1> 04. <campo2>valor 2</campo2> 05. <campo3>valor 3</campo3> 06. <campo4>valor 4</campo4> 07. </query> 08. </iq> Blocos básicos: <iq> Resposta... 01. <iq to=quot;melopt@gmail.com/resquot; from=quot;melo@simplicidade.org/Tabuleiroquot; type=quot;resultquot; 02. <query xmlns=quot;org.simplicidade.proj1.proto1quot; /> 03. </iq> file:///Users/melo/Documents/Work/projects/codebits/2008/xmpp-hands-on/presentation/xmpp-mao_na_coisa.html Page 3 of 4
  4. 4. XMPP - Mão na Coisa 11/19/08 11:55 AM Tipos de ligação Cliente-Servidor: usadas por utilizadores Apenas um Jabber ID: local@domain/resource Limitado em termos de números de buddies Mas vários promenores são tratados por nós Component-Servidor: usadas por aplicações mais avançadas Represente um ou mais dominios (ex. teste.simplicidade.org) Ilimitado em termos de buddies ou de users @teste.simplicidade.org Responsabilidade de implementar o protocolo todo Pequenos bots http2xmpp.pl Subscrição automática Mensagem de boas vindas HTTP POST => XMPP message Arrancar o http2xmpp-N.pl e aceder ao interface web Real-time feeds e Sync de procs process_sync-N.pl Liga-se a um chat-room Comandos simples Comandos para fazer stream de dados Sincronizaçao de tarefas Arrancar o process_sync-N.pl e aceder à sala sync@conference.test.simplicidade.org file:///Users/melo/Documents/Work/projects/codebits/2008/xmpp-hands-on/presentation/xmpp-mao_na_coisa.html Page 4 of 4

×