Enviar pesquisa
Carregar
Exploring XMPP
•
12 gostaram
•
6,754 visualizações
codebits
Seguir
Vista de apresentação de diapositivos
Denunciar
Compartilhar
Vista de apresentação de diapositivos
Denunciar
Compartilhar
1 de 153
Baixar agora
Baixar para ler offline
Recomendados
Joomla Day Austin Part 2
Joomla Day Austin Part 2
Kyle Ledbetter
Database Related Comboboxes
Database Related Comboboxes
ozlemyavuz
RJ Auburn's presentation at eComm 2008
RJ Auburn's presentation at eComm 2008
eComm2008
12ngm35vq87kcjcl03oa
12ngm35vq87kcjcl03oa
oscar_belmont
Livro de Resumos do I Seminário Doutoral
Livro de Resumos do I Seminário Doutoral
telsc
Ccna Imp Guide
Ccna Imp Guide
abhijitgnbbl
Historia do porto rua de sá da bandeira - artur filipe dos santos
Historia do porto rua de sá da bandeira - artur filipe dos santos
Artur Filipe dos Santos
Attire write up for Trudy Lee 22 -23
Attire write up for Trudy Lee 22 -23
Hilary Silvester
Recomendados
Joomla Day Austin Part 2
Joomla Day Austin Part 2
Kyle Ledbetter
Database Related Comboboxes
Database Related Comboboxes
ozlemyavuz
RJ Auburn's presentation at eComm 2008
RJ Auburn's presentation at eComm 2008
eComm2008
12ngm35vq87kcjcl03oa
12ngm35vq87kcjcl03oa
oscar_belmont
Livro de Resumos do I Seminário Doutoral
Livro de Resumos do I Seminário Doutoral
telsc
Ccna Imp Guide
Ccna Imp Guide
abhijitgnbbl
Historia do porto rua de sá da bandeira - artur filipe dos santos
Historia do porto rua de sá da bandeira - artur filipe dos santos
Artur Filipe dos Santos
Attire write up for Trudy Lee 22 -23
Attire write up for Trudy Lee 22 -23
Hilary Silvester
Gis SAPO Hands On
Gis SAPO Hands On
codebits
Aplicações Web TV no Meo
Aplicações Web TV no Meo
codebits
Forms Usability 101
Forms Usability 101
codebits
Speak up: como criar Speech-based apps
Speak up: como criar Speech-based apps
codebits
XMPP Hands-On
XMPP Hands-On
codebits
Mitos da Acessibilidade Web
Mitos da Acessibilidade Web
codebits
Getting started with mobile devices development - Openmoko Freerunner
Getting started with mobile devices development - Openmoko Freerunner
codebits
Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...
Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...
codebits
CouchDB
CouchDB
codebits
Getting started with mobile devices development - Openmoko Freerunner
Getting started with mobile devices development - Openmoko Freerunner
codebits
Sapo BUS Hands-On
Sapo BUS Hands-On
codebits
Qtractor - An Audio/MIDI multi-track sequencer
Qtractor - An Audio/MIDI multi-track sequencer
codebits
Making the Chumby
Making the Chumby
codebits
Globs - Gestão de Glossários
Globs - Gestão de Glossários
codebits
ATrad - Sistema de Garantia de Qualidade de Traduções
ATrad - Sistema de Garantia de Qualidade de Traduções
codebits
Alto Desempenho com Java
Alto Desempenho com Java
codebits
Sapo GIS Hands-On
Sapo GIS Hands-On
codebits
Gis@sapo
Gis@sapo
codebits
Practical Thin Server Architecture With Dojo Sapo Codebits 2008
Practical Thin Server Architecture With Dojo Sapo Codebits 2008
codebits
Optimização de pesquisas Web utilizando Colónias de Formigas
Optimização de pesquisas Web utilizando Colónias de Formigas
codebits
Mais conteúdo relacionado
Mais de codebits
Gis SAPO Hands On
Gis SAPO Hands On
codebits
Aplicações Web TV no Meo
Aplicações Web TV no Meo
codebits
Forms Usability 101
Forms Usability 101
codebits
Speak up: como criar Speech-based apps
Speak up: como criar Speech-based apps
codebits
XMPP Hands-On
XMPP Hands-On
codebits
Mitos da Acessibilidade Web
Mitos da Acessibilidade Web
codebits
Getting started with mobile devices development - Openmoko Freerunner
Getting started with mobile devices development - Openmoko Freerunner
codebits
Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...
Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...
codebits
CouchDB
CouchDB
codebits
Getting started with mobile devices development - Openmoko Freerunner
Getting started with mobile devices development - Openmoko Freerunner
codebits
Sapo BUS Hands-On
Sapo BUS Hands-On
codebits
Qtractor - An Audio/MIDI multi-track sequencer
Qtractor - An Audio/MIDI multi-track sequencer
codebits
Making the Chumby
Making the Chumby
codebits
Globs - Gestão de Glossários
Globs - Gestão de Glossários
codebits
ATrad - Sistema de Garantia de Qualidade de Traduções
ATrad - Sistema de Garantia de Qualidade de Traduções
codebits
Alto Desempenho com Java
Alto Desempenho com Java
codebits
Sapo GIS Hands-On
Sapo GIS Hands-On
codebits
Gis@sapo
Gis@sapo
codebits
Practical Thin Server Architecture With Dojo Sapo Codebits 2008
Practical Thin Server Architecture With Dojo Sapo Codebits 2008
codebits
Optimização de pesquisas Web utilizando Colónias de Formigas
Optimização de pesquisas Web utilizando Colónias de Formigas
codebits
Mais de codebits
(20)
Gis SAPO Hands On
Gis SAPO Hands On
Aplicações Web TV no Meo
Aplicações Web TV no Meo
Forms Usability 101
Forms Usability 101
Speak up: como criar Speech-based apps
Speak up: como criar Speech-based apps
XMPP Hands-On
XMPP Hands-On
Mitos da Acessibilidade Web
Mitos da Acessibilidade Web
Getting started with mobile devices development - Openmoko Freerunner
Getting started with mobile devices development - Openmoko Freerunner
Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...
Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...
CouchDB
CouchDB
Getting started with mobile devices development - Openmoko Freerunner
Getting started with mobile devices development - Openmoko Freerunner
Sapo BUS Hands-On
Sapo BUS Hands-On
Qtractor - An Audio/MIDI multi-track sequencer
Qtractor - An Audio/MIDI multi-track sequencer
Making the Chumby
Making the Chumby
Globs - Gestão de Glossários
Globs - Gestão de Glossários
ATrad - Sistema de Garantia de Qualidade de Traduções
ATrad - Sistema de Garantia de Qualidade de Traduções
Alto Desempenho com Java
Alto Desempenho com Java
Sapo GIS Hands-On
Sapo GIS Hands-On
Gis@sapo
Gis@sapo
Practical Thin Server Architecture With Dojo Sapo Codebits 2008
Practical Thin Server Architecture With Dojo Sapo Codebits 2008
Optimização de pesquisas Web utilizando Colónias de Formigas
Optimização de pesquisas Web utilizando Colónias de Formigas
Exploring XMPP
1.
<exploring:xmpp/>
Jack Moffitt
2.
Why XMPP?
3.
HTTP APIs are
great
4.
HTTP polling sucks
5.
Real time is
different
6.
XMPP is real
time
7.
XMPP basics
8.
XMPP network
9.
10.
11.
12.
13.
XMPP addressing
14.
example.com
15.
jack@example.com
16.
jack@example.com/home
17.
jack@example.com/work
18.
jack@example.com/7a29d835f9c
19.
XMPP protocol
20.
XML
21.
XML streams
22.
XML stanzas
23.
<message/>
24.
<presence/>
25.
<iq/>
26.
<message/>
27.
<message
from=’juliet@sapo.pt/home’ to=’romeo@sapo.pt’ type=’chat’> <body> Wherefore art thou, Romeo? </body> </message>
28.
<message
from=’juliet@sapo.pt/home’ to=’romeo@sapo.pt’ type=’chat’> <body> Wherefore art thou, Romeo? </body> </message>
29.
<message
from=’juliet@sapo.pt/home’ to=’romeo@sapo.pt’ type=’chat’> <body> Wherefore art thou, Romeo? </body> </message>
30.
<message
from=’juliet@sapo.pt/home’ to=’romeo@sapo.pt’ type=’chat’> <body> Wherefore art thou, Romeo? </body> </message>
31.
<message
from=’juliet@sapo.pt/home’ to=’romeo@sapo.pt’ type=’chat’> <body> Wherefore art thou, Romeo? </body> </message>
32.
<presence/>
33.
<presence> <show>away</show> <status>At
Codebits</status> </presence>
34.
<presence
type=’available’> <show>away</show> <status>At Codebits</status> </presence>
35.
<presence
type=’available’> <show>away</show> <status>At Codebits</status> </presence>
36.
<presence
type=’available’> <show>away</show> <status>At Codebits</status> </presence>
37.
<iq/>
38.
<iq
to=’sapo.pt’ type=’get’ id=’disco:1’> <query xmlns=’disco#info’/> </iq>
39.
<iq
to=’sapo.pt’ type=’get’ id=’disco:1’> <query xmlns=’disco#info’/> </iq>
40.
<iq
to=’sapo.pt’ type=’get’ id=’disco:1’> <query xmlns=’disco#info’/> </iq>
41.
<iq
to=’sapo.pt’ type=’get’ id=’disco:1’> <query xmlns=’disco#info’/> </iq>
42.
<iq
to=’sapo.pt’ type=’get’ id=’disco:1’> <query xmlns=’disco#info’/> </iq>
43.
<iq
to=’romeo@sapo.pt/home’ from=’sapo.pt’ type=’result’ id=’disco:1’> <query xmlns=’disco#info’> <identity category='server' type='im' name='ejabberd'/> <feature var='vcard-temp'/> </query> </iq>
44.
<iq
to=’romeo@sapo.pt/home’ from=’sapo.pt’ type=’result’ id=’disco:1’> <query xmlns=’disco#info’> <identity category='server' type='im' name='ejabberd'/> <feature var='vcard-temp'/> </query> </iq>
45.
<iq
to=’romeo@sapo.pt/home’ from=’sapo.pt’ type=’result’ id=’disco:1’> <query xmlns=’disco#info’> <identity category='server' type='im' name='ejabberd'/> <feature var='vcard-temp'/> </query> </iq>
46.
<iq
to=’romeo@sapo.pt/home’ from=’sapo.pt’ type=’result’ id=’disco:1’> <query xmlns=’disco#info’> <identity category='server' type='im' name='ejabberd'/> <feature var='vcard-temp'/> </query> </iq>
47.
The application
48.
example
49.
contrived
50.
Server monitoring
51.
Goodbye SNMP
52.
XMPP APIs
53.
Features
54.
Collection hub
55.
Collectors are XMPP
bots
56.
Controlled via client
57.
Presence
58.
Discovery
59.
Commands
60.
Notification
61.
No processing
62.
Presence
63.
Communicates status
64.
Subscribing
65.
<presence type=’subscribe’
to=’xmpp@mon.sapo.pt’/>
66.
<presence type=’subscribed’
from=’xmpp@mon...’ to=’client@mon...’/>
67.
Rosters
68.
<iq
type=’get’ id=’roster1’> <query xmlns=’jabber:iq:roster’/> </iq>
69.
<iq
type=’result’ id=’roster1’> <query xmlns=’jabber:iq:roster’> <item jid=’xmpp@mon...’ subscription=’to’/> </query> </iq>
70.
Initial presence
71.
<presence/>
72.
Starting up
73.
<presence from=’xmpp@mon...’/>
74.
Dead server
75.
<presence type=’unavailable’
from=’xmpp@mon...’/>
76.
Busy server
77.
<presence type=’available’>
<show>away</show> <status> Overloaded. Can’t take more jobs. </status> </presence>
78.
Discovery
79.
Meta information
80.
Disco info
81.
<iq
id=’disco1’ type=’get’ to=’xmpp@mon...’> <query xmlns=’.../disco#info’/> </iq>
82.
<iq ...> <query
xmlns=’.../disco#info’> <identity name=’XMPP Monitor’ category=’monitor’ type=’server’/> </query> </iq>
83.
Statistics available
84.
Disco items
85.
<iq
id=’disco2’ type=’get’ to=’xmpp@mon...’> <query xmlns=’.../disco#items’/> </iq>
86.
<iq ...> <query
xmlns=’.../disco#items’> <item name=’CPU Load’ jid=’xmpp@mon...’ node=’cpu’/> ... </query> </iq>
87.
<iq ...> <query
xmlns=’.../disco#items’> <item name=’CPU Load’ jid=’xmpp@mon...’ node=’cpu’/> ... </query> </iq>
88.
<iq ...> <query
xmlns=’.../disco#items’> <item name=’CPU Load’ jid=’xmpp@mon...’ node=’cpu’/> ... </query> </iq>
89.
Gathering statistics
90.
Disco info again
91.
With a node
92.
<iq
id=’disco3’ type=’get’ to=’xmpp@mon...’> <query xmlns=’.../disco#info’ node=’cpu’/> </iq>
93.
<iq ...> <query
xmlns=’.../disco#info’ node=’cpu’> <statisic xmlns=’codebits’ name=’5-min’ value=’0.4’/> </query> </iq>
94.
<statistic/>
95.
Extended stanza
96.
Create your own
97.
Namespace
98.
<iq ...> <query
xmlns=’.../disco#info’ node=’cpu’> <statisic xmlns=’codebits’ name=’5-min’ value=’0.4’/> </query> </iq>
99.
Commands
100.
Ad-hoc commands
101.
RPC
102.
Input and output
103.
Data forms
104.
<x xmlns='jabber:x:data' type='...'>
<field type='hidden' var='FORM_TYPE'> <value>jabber:bot</value> </field> <field type='text-single' var='botname'> <value>Awesome Bot</value> </field> </x>
105.
<x xmlns='jabber:x:data' type='...'>
<field type='hidden' var='FORM_TYPE'> <value>jabber:bot</value> </field> <field type='text-single' var='botname'> <value>Awesome Bot</value> </field> </x>
106.
<x xmlns='jabber:x:data' type='...'>
<field type='hidden' var='FORM_TYPE'> <value>jabber:bot</value> </field> <field type='text-single' var='botname'> <value>Awesome Bot</value> </field> </x>
107.
<x xmlns='jabber:x:data' type='...'>
<field type='hidden' var='FORM_TYPE'> <value>jabber:bot</value> </field> <field type='text-single' var='botname'> <value>Awesome Bot</value> </field> </x>
108.
<x xmlns='jabber:x:data' type='...'>
<field type='hidden' var='FORM_TYPE'> <value>jabber:bot</value> </field> <field type='text-single' var='botname'> <value>Awesome Bot</value> </field> </x>
109.
Reboot command
110.
<iq ...> <command
xmlns=’.../commands’ node=’reboot’ action=’execute’/> </iq>
111.
<iq ...> <command
xmlns=’.../commands’ node=’reboot’ action=’execute’/> </iq>
112.
<iq ...> <command
xmlns=’.../commands’ node=’reboot’ action=’execute’/> </iq>
113.
<iq ...> <command
xmlns=’.../commands’ node=’reboot’ status=’completed’/> </iq>
114.
Stats reset
115.
Shell commands
116.
Notifications
117.
Important events
118.
Limits exceeded
119.
Publish subscribe
120.
Pubsub
121.
Nodes
122.
Node hierarchy
123.
Leaves
124.
Collections
125.
Bots publish
126.
Client subscribes
127.
PEP
128.
Personal eventing protocol
129.
Profile of pubsub
130.
Simple
131.
Presence
132.
Every JID is
a pubsub node
133.
Subscriptions are automatic
134.
Publishing
135.
<iq ...> <pubsub
xmlns=’.../pubsub’> <publish node=’codebits’> <item> <rebooted xmlns=’codebits’/> </item> </publish> </pubsub> </iq>
136.
<iq ...> <pubsub
xmlns=’.../pubsub’> <publish node=’codebits’> <item> <rebooted xmlns=’codebits’/> </item> </publish> </pubsub> </iq>
137.
<iq ...> <pubsub
xmlns=’.../pubsub’> <publish node=’codebits’> <item> <rebooted xmlns=’codebits’/> </item> </publish> </pubsub> </iq>
138.
<iq ...> <pubsub
xmlns=’.../pubsub’> <publish node=’codebits’> <item> <rebooted xmlns=’codebits’/> </item> </publish> </pubsub> </iq>
139.
<iq ...> <pubsub
xmlns=’.../pubsub’> <publish node=’codebits’> <item> <rebooted xmlns=’codebits’/> </item> </publish> </pubsub> </iq>
140.
Subscribing
141.
Automatic
142.
Entity capabilities
143.
Caps
144.
Caps extend presence
145.
<presence> <c
xmlns=’.../caps’ node=’codebits’ hash=’sha-1’ ver=’...hash...’/> </presence>
146.
<presence> <c
xmlns=’.../caps’ node=’codebits’ hash=’sha-1’ ver=’...hash...’/> </presence>
147.
<presence> <c
xmlns=’.../caps’ node=’codebits’ hash=’sha-1’ ver=’...hash...’/> </presence>
148.
Interpreted via disco
149.
<feature var=’codebits’/> <feature var=’codebits+notify’/>
150.
Events
151.
<message ...> <event
xmlns=’.../pubsub’> <items node=’codebits’> <item> <rebooted xmlns=’codebits’/> </item> </items> </event> </message>
152.
Just add code
153.
http://www.xmpp.org http://metajack.im jack@metajack.im
Baixar agora