Yann Leboulanger пишет:
On 06/18/2010 08:20 PM, Konstantin Kozlov wrote:
Waqas Hussain пишет:
See XEP-0085: Chat State Notifications. That nicely solves the problem
of determining if the other side is paying attention to the
conversation.
No. We don't know how messages represented on the other side. It could
be chat windows, pop-ups or whatever author of the application can
imagine. So, in some implementations some (or all) chat state
notifications are meaningless or has limited usability.
Why that? <active/> means chat windows is active, not that a popup
appreaed.
Also, analyzing chat state of the other side trying to guess if the user
paid attention to your message is much less convenient than just receive
<read /> notification.
What's the difference bwtween receiving a <read/> amd receiving a
<active/> stanza?
'Cause in some implementations, pop-up may contain whole message.
And clicking? for example, "Ok" in such pop-up will dismiss it and
acknowledge that message is read by the user. So, the other side will
receive <read /> without receiving <active />.
Another example: we receive <active/> notification. Then we receive
<composing/> notification. The we decide to send a message. The message
is sent and we receive <received /> notification. Now, how do you think,
the user on the other side read your message, or not?
In fact? it's implementation dependent:
1. In Psi, if user is composing a message, it's chat window is
active and he will see your message just when it arrived.
2. In Bombus, if user composing a message, he cannot see message
list, 'cause current screen is message edit textbox. So, he'll see your
message after he'll send his one or will suspend editing. And if
something's diverted his attention while he composing message, he won't
read your message 'till he remember about it.
So, you have to analyze message receipts, chat state notifications,
client version to guess if user on the other side read your message. Ind
is some cases even that is not enough. Need examples?