mirror of
https://github.com/bjc/prosody.git
synced 2025-04-03 21:27:38 +03:00
174 lines
3.7 KiB
Text
174 lines
3.7 KiB
Text
# Basic message routing and delivery
|
|
|
|
[Client] Romeo
|
|
jid: user@localhost
|
|
password: password
|
|
|
|
[Client] Juliet
|
|
jid: juliet@localhost
|
|
password: password
|
|
|
|
[Client] Juliet's phone
|
|
jid: juliet@localhost
|
|
password: password
|
|
resource: mobile
|
|
|
|
---------
|
|
|
|
# Act 1, scene 1
|
|
# The clients connect
|
|
|
|
Romeo connects
|
|
|
|
Juliet connects
|
|
|
|
Juliet's phone connects
|
|
|
|
# Romeo publishes his presence. Juliet has not, and so does not receive presence.
|
|
|
|
Romeo sends:
|
|
<presence/>
|
|
|
|
Romeo receives:
|
|
<presence from="${Romeo's full JID}" />
|
|
|
|
# Romeo sends a message to Juliet's full JID
|
|
|
|
Romeo sends:
|
|
<message to="${Juliet's full JID}" type="chat">
|
|
<body>Hello Juliet!</body>
|
|
</message>
|
|
|
|
Juliet receives:
|
|
<message to="${Juliet's full JID}" from="${Romeo's full JID}" type="chat">
|
|
<body>Hello Juliet!</body>
|
|
</message>
|
|
|
|
# Romeo sends a message to Juliet's phone
|
|
|
|
Romeo sends:
|
|
<message to="${Juliet's phone's full JID}" type="chat">
|
|
<body>Hello Juliet, on your phone.</body>
|
|
</message>
|
|
|
|
Juliet's phone receives:
|
|
<message to="${Juliet's phone's full JID}" from="${Romeo's full JID}" type="chat">
|
|
<body>Hello Juliet, on your phone.</body>
|
|
</message>
|
|
|
|
# Scene 2
|
|
# This requires the server to support offline messages (which is optional).
|
|
|
|
# Romeo sends a message to Juliet's bare JID. This is not immediately delivered, as she
|
|
# has not published presence on either of her resources.
|
|
|
|
Romeo sends:
|
|
<message to="juliet@localhost" type="chat">
|
|
<body>Hello Juliet, are you there?</body>
|
|
</message>
|
|
|
|
# Juliet sends presence on her phone, and should receive the message there
|
|
|
|
Juliet's phone sends:
|
|
<presence/>
|
|
|
|
Juliet's phone receives:
|
|
<presence/>
|
|
|
|
Juliet's phone receives:
|
|
<message from="${Romeo's full JID}" type="chat">
|
|
<body>Hello Juliet, are you there?</body>
|
|
<delay xmlns='urn:xmpp:delay' from='localhost' stamp='{scansion:any}' />
|
|
</message>
|
|
|
|
# Romeo sends another bare-JID message, it should be delivered
|
|
# instantly to Juliet's phone
|
|
|
|
Romeo sends:
|
|
<message to="juliet@localhost" type="chat">
|
|
<body>Oh, hi!</body>
|
|
</message>
|
|
|
|
Juliet's phone receives:
|
|
<message from="${Romeo's full JID}" type="chat">
|
|
<body>Oh, hi!</body>
|
|
</message>
|
|
|
|
# Juliet's laptop goes online, but with a negative priority
|
|
|
|
Juliet sends:
|
|
<presence>
|
|
<priority>-1</priority>
|
|
</presence>
|
|
|
|
Juliet receives:
|
|
<presence from="${Juliet's full JID}">
|
|
<priority>-1</priority>
|
|
</presence>
|
|
|
|
Juliet's phone receives:
|
|
<presence from="${Juliet's full JID}">
|
|
<priority>-1</priority>
|
|
</presence>
|
|
|
|
# Again, Romeo sends a message to her bare JID, but it should
|
|
# only get delivered to her phone:
|
|
|
|
Romeo sends:
|
|
<message to="juliet@localhost" type="chat">
|
|
<body>How are you?</body>
|
|
</message>
|
|
|
|
Juliet's phone receives:
|
|
<message from="${Romeo's full JID}" type="chat">
|
|
<body>How are you?</body>
|
|
</message>
|
|
|
|
# Romeo sends direct to Juliet's full JID, and she should receive it
|
|
|
|
Romeo sends:
|
|
<message to="${Juliet's full JID}" type="chat">
|
|
<body>Are you hiding?</body>
|
|
</message>
|
|
|
|
Juliet receives:
|
|
<message from="${Romeo's full JID}" type="chat">
|
|
<body>Are you hiding?</body>
|
|
</message>
|
|
|
|
# Juliet publishes non-negative presence
|
|
|
|
Juliet sends:
|
|
<presence/>
|
|
|
|
Juliet receives:
|
|
<presence from="${Juliet's full JID}"/>
|
|
|
|
Juliet's phone receives:
|
|
<presence from="${Juliet's full JID}"/>
|
|
|
|
# And now Romeo's bare JID messages get delivered to both resources
|
|
# (server behaviour may vary here)
|
|
|
|
Romeo sends:
|
|
<message to="juliet@localhost" type="chat">
|
|
<body>There!</body>
|
|
</message>
|
|
|
|
Juliet receives:
|
|
<message from="${Romeo's full JID}" type="chat">
|
|
<body>There!</body>
|
|
</message>
|
|
|
|
Juliet's phone receives:
|
|
<message from="${Romeo's full JID}" type="chat">
|
|
<body>There!</body>
|
|
</message>
|
|
|
|
# The End
|
|
|
|
Romeo disconnects
|
|
|
|
Juliet disconnects
|
|
|
|
Juliet's phone disconnects
|