# 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: Romeo receives: # Romeo sends a message to Juliet's full JID Romeo sends: Hello Juliet! Juliet receives: Hello Juliet! # Romeo sends a message to Juliet's phone Romeo sends: Hello Juliet, on your phone. Juliet's phone receives: Hello Juliet, on your phone. # 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: Hello Juliet, are you there? # Juliet sends presence on her phone, and should receive the message there Juliet's phone sends: Juliet's phone receives: Juliet's phone receives: Hello Juliet, are you there? # Romeo sends another bare-JID message, it should be delivered # instantly to Juliet's phone Romeo sends: Oh, hi! Juliet's phone receives: Oh, hi! # Juliet's laptop goes online, but with a negative priority Juliet sends: -1 Juliet receives: -1 Juliet's phone receives: -1 # Again, Romeo sends a message to her bare JID, but it should # only get delivered to her phone: Romeo sends: How are you? Juliet's phone receives: How are you? # Romeo sends direct to Juliet's full JID, and she should receive it Romeo sends: Are you hiding? Juliet receives: Are you hiding? # Juliet publishes non-negative presence Juliet sends: Juliet receives: Juliet's phone receives: # And now Romeo's bare JID messages get delivered to both resources # (server behaviour may vary here) Romeo sends: There! Juliet receives: There! Juliet's phone receives: There! # The End Romeo disconnects Juliet disconnects Juliet's phone disconnects