I've implemented a chrome extension which allow to use XMPP chat over BOSH connection with punjab server running on a remote server. It is implemented using javascript Strophe library. The issue I'm running into is when I have multiple sessions of the same user (e.g. two different browsers on the same machine) I can't receive and log to the second chat window the message I sent from first chat window. There needs to be some mechanism which allows that. Can I somehow receive messages I have sent to some other user? The issue can also be reproduced on 2 or more different machines so this needs to be solved too.
Thank you.
You need to understand how JIDs work, what priorities are and how to send messages.
A JID is of the form: user@domain/resource
The JIDs of logged in users have to be unique. Typically when you use a web client you assign a random resource to each session so as to not have clashes.
Now, when a user sends a message the to
attribute of the <message>
stanza specifies the recipient of the message. If the resource is part of the recipient then only that JID will receive the message. If the recipient is a bare JID (user@domain) then priorities come into play (see here):
You can set the priority (an integer in [-128, 127])when you send your presence (see the rfc for full spec) for example:
<presence>
<status>Learning XMPP</status>
<priority>1</priority>
</presence>