-
You configured
strict
delivery rules, therefore we are following Message delivery rules to the dot:For a message stanza of type "normal", "groupchat", or "headline", the server MUST either (a) silently ignore the stanza or (b) return an error stanza to the sender, which SHOULD be .
You can try setting message type to
chat
-
The toJid of the message was a full JID, such as: JID fromJid = JID.jidInstance("A", "xmpp.server"); JID toJid = JID.jidInstance("B", "xmpp.server", "phone");
So, when the client B was offline, i need the message was stored in the tig_offline_message with resource.
Because the message would not be handled within some client, such as pc, some client (such as phone) would handle the message.
However, when the phone client was not online, the message would be stored in the tig_offline_message. The message would resent to the phone client until the phone client was online.
-
As the linked specification says:
For a message stanza of type "chat":
- If there is no available or connected resource, the server MUST either (a) store the message offline for later delivery or (b) return an error stanza to the sender, which SHOULD be .
For the
strict
configuration we opted for the(b)
option. If you want messages stored for offlien delivery you should useinteligent
configuration of'delivery-rules'
-
For inteligent configuration, it was possible that the message would resent the pc client without handling the message, when the pc client was online. However, the pc client did not handle the message, so the message would be lost. But i just wanted the phone client handled the message. So, how can i solve it? Thanks a lot!
-
Best way to handle it would be to use both/or any of the:
the config.tdsl:
So i found the reason by debugging, such as:
the class: MessageAmp, the method: postProcess, the line: 96, such as: