[JDEV] id attr in message packets

Sean Wheeler swheeler at media.mit.edu
Sun Jul 14 13:23:20 CDT 2002


On Sun, 14 Jul 2002, Jeremy Nickurak wrote:
>
> The id attribute is intended to be used so that the sender and receiver
> can refer to particular messages. For example, someone might implement a
> "addendum" message type/namespace that changes some element of the
> previous message:
>
> <message id="3" type="addendum" from="bar at media" to="foo at media">
>    <x xmlns="jabber:x:addendum">
>       <append id="1">
>          See also http://somepage.com/ for more details.
>       </append>
>    </x>
> </message>
>
> That way, the <append> tag's "id" attribute can be uniquesly associated
> with a particular mesage bar at media has already sent to foo at media.

Thanks!

Yes, this is precisely the kind of thing i'm looking for.  I also need the
ability to refer to the reply that foo sends, and I can't really figure
out how to do this without some non-standard crutch.

Maybe a rough ascii diagram helps.

Messages sent from:
foo	 bar	  foo	   bar	    foo	     bar
id=1     id=2     id=3     id=4     id=5     id=6
thread=a thread=a thread=a thread=a thread=a thread=a

So in this scheme we can identify messages 1-6 as a group by the thread
tag.  As you suggest, we can also refer to each particular message in the
stream.

But this is problematic in a non-dialogic interchange if we have something
like

foo       bar        bar
id=1      id=2	     id=3
thread=a  thread=a   thread=a

It is unclear whether messages 2 or 3 are a reply to message 1 or not.
The alternate approach is


foo	    bar	      bar
id=1	    id=1      id=2
thread=a    thread=a  thread=a

Here it's clear that bar sends a reply and another message that is not a
reply.  If I'm referring to particular messages, I would have to refer to
message id 1 from bar, as opposed to message id 1 from foo.  This actually
might be a good thing, because I might want to append to an interchange as
well as a particular message.

On the other hand, what if bar sends more than one reply?

foo	  bar	     bar         bar
id=1	  id=1	     id=1        id=2
thread=a  thread=a   thread=a    thread=a

So the first 2 messages from bar are replies to foo, the last is
unrelated.  Now, however, I can't refer to which reply, since they have
the same id and are from the same sender.

Sean




More information about the JDev mailing list