XMPP Hands-On
-
Upload
codebits -
Category
Technology
-
view
649 -
download
6
Transcript of XMPP Hands-On
11/19/08 11:55 AMXMPP - Mão na Coisa
Page 1 of 4file:///Users/melo/Documents/Work/projects/codebits/2008/xmpp-hands-on/presentation/xmpp-mao_na_coisa.html
XMPPMão na Coisa
Pedro Melosimplicidade.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 comXMPP à frente.
ResumoConversa da tretaPreliminaresMão na CoisaCoisa na MãoCoisa na Coisa
Resumo (agora a sério)Breve explicação do ambienteModelo de programaçãoBlocos básicosPequenos botsReal-time feedsSincronização de processos
AmbienteOpenFire no tabuleiroPerl: Net::XMPP2Python: Twisted + Wokkel (Hi Jack!)Ruby: EventMachine? Simple::Bot? xmpp4r?Java: SmackC, Loudmouth: StrophePHP, Class::XMPPJavaScript: Strophe, JsJac
Modelo de ProgramaçãoEvent-drivenNada é garantido, timeouts em todo o ladoClosures (em linguagens que as tenham)
11/19/08 11:55 AMXMPP - Mão na Coisa
Page 2 of 4file:///Users/melo/Documents/Work/projects/codebits/2008/xmpp-hands-on/presentation/xmpp-mao_na_coisa.html
Event loop: se os tiverem, usemEnviar pedido, callback para quando a resposta chegarHooks para responder a novos pedidos
Blocos básicosTrês blocos básicos
message: fire and forgetiq: pergunta/respostapresence: broadcast, gestão de buddies
Cada um deles tem atributos comunstofromtypeid
Mas o X em XMPP é de Extensible
Blocos básicos: <mesage>Uma mensagem comum
Blocos básicos: <mesage>Agora com uma extensão
Blocos básicos: <mesage>E já agora para não ficar guardada offline
01. <message to="[email protected]/res" from="[email protected]/Tabuleiro" type=
02. <body>Recebes-te uma mensagem do Paulo! (link)</body> 03. </message>
01. <message to="[email protected]/res" from="[email protected]/Tabuleiro" type=
02. <body>Recebes-te uma mensagem do Paulo! (link)</body> 03. <n xmlns="org.simplicidade.proj1"> 04. <from>Paulo</from> 05. <link>link</link> 06. <reply>reply_link</reply> 07. </n> 08. </message>
01. <message to="[email protected]/res" from="[email protected]/Tabuleiro" type=
02. <body>Recebes-te uma mensagem do Paulo! (link)</body> 03. <n xmlns="org.simplicidade.proj1"> 04. <from>Paulo</from> 05. <link>link</link>
11/19/08 11:55 AMXMPP - Mão na Coisa
Page 3 of 4file:///Users/melo/Documents/Work/projects/codebits/2008/xmpp-hands-on/presentation/xmpp-mao_na_coisa.html
Blocos básicos: <iq> (get)Pergunta...
Blocos básicos: <iq>Resposta...
Blocos básicos: <iq> (set)Alteração...
Blocos básicos: <iq>Resposta...
06. <reply>reply_link</reply> 07. </n> 08. </message>
01. <iq to="[email protected]/res" from="[email protected]/Tabuleiro" type="get"
02. <query xmlns="org.simplicidade.proj1.proto1" /> 03. </iq>
01. <iq to="[email protected]/res" from="[email protected]/Tabuleiro" type="result"
02. <query xmlns="org.simplicidade.proj1.proto1"> 03. <campo1>valor 1</campo1> 04. <campo2>valor 2</campo2> 05. <campo3>valor 3</campo3> 06. <campo4>valor 4</campo4> 07. </query> 08. </iq>
01. <iq to="[email protected]/res" from="[email protected]/Tabuleiro" type="set"
02. <query xmlns="org.simplicidade.proj1.proto1"> 03. <campo1>valor 1</campo1> 04. <campo2>valor 2</campo2> 05. <campo3>valor 3</campo3> 06. <campo4>valor 4</campo4> 07. </query> 08. </iq>
01. <iq to="[email protected]/res" from="[email protected]/Tabuleiro" type="result"
02. <query xmlns="org.simplicidade.proj1.proto1" /> 03. </iq>
11/19/08 11:55 AMXMPP - Mão na Coisa
Page 4 of 4file:///Users/melo/Documents/Work/projects/codebits/2008/xmpp-hands-on/presentation/xmpp-mao_na_coisa.html
Tipos de ligaçãoCliente-Servidor: usadas por utilizadores
Apenas um Jabber ID: local@domain/resourceLimitado em termos de números de buddiesMas vários promenores são tratados por nós
Component-Servidor: usadas por aplicações mais avançadasRepresente um ou mais dominios (ex. teste.simplicidade.org)Ilimitado em termos de buddies ou de users @teste.simplicidade.orgResponsabilidade de implementar o protocolo todo
Pequenos botshttp2xmpp.pl
Subscrição automáticaMensagem de boas vindasHTTP POST => XMPP message
Arrancar o http2xmpp-N.pl e aceder ao interface web
Real-time feeds e Sync de procsprocess_sync-N.pl
Liga-se a um chat-roomComandos simplesComandos para fazer stream de dadosSincronizaçao de tarefas
Arrancar o process_sync-N.pl e aceder à sala [email protected]