[Spread-users] Send a message to a particular user and know if he has received it

NA Jean-Luc jlmlist2004 at yahoo.fr
Tue May 18 05:38:35 EDT 2004


I am trying to send a message to a "user" and be sure
it has received it. I will try to expose clearly my
need and problems below :

1) Explanation of what i would need
I need to convince my boss that Spread is what we need
for a project ;)
I would like to use Spread in a user oriented way (a
bit like in MQ Series i would say).
I would like to send a message to a user (that has is
own Spread group) only if he is connected, not send
otherwise and send him when he will be back (i store
it on my own in this case, i know Spread doesn't do
that itself - i mean if user is not in the group -).

2) To implement that:

1.1) Knowing if my user is connected
I want to store the users in a group (only one user in
my case) in a local vector structure containing the
users in the group. This local structure is updated
each time i receive membership system message from
This is like it is said here :

1.2) Send the message to the user
I send the message to the group as i just check it is
in the local structure else i am warned and store this

1.3) Be sure it will get the message in case of
network pb or disconnection
I send the message only if the user is in the group,
so if i am not wrong, one of the "garantee" of Spread
is that
the message will be send to this user even if there
are connection problems. I am not sure to understand
if Spread stores this message by the way (in case of a
user connected when the message was sent but that
cannot be reached currently).

3) Test done

1.1) I have a computer under Linux, launching "spuser"
command and joining group "mygroup".
1.2) I have a modified Java Spread client (User.java,
recThread.java) under Windows that connects to the
group "mygroup", and that stores the people in this
group in a "Vector". It sends message with "s <group>"
like usually but only if there is the other user in
the group (my Vector contains him too).
1.3) I disconnect the Linux machine (using "ifdown
eth0") and wait 1 second.
1.4) Send the message from Windows, the message is
sent as the User is found in my Vector structure (and
also to itself).
1.5) The Windows machine receives the membership
change message about this group (and the Linux machine
as well) and updates the Vector structure (but too
1.6) I reconnect the Linux machine (with "ifup eth0",
maybe 10 seconds later) but the message never comes to
the Linux machine ... (I though that Spread would
garantee that such a message would come even with a
delay ...)


1) I would like to know if i use Spread the right way
As it is "user oriented" and "not group oriented" i
For example, sending a real-time video to 100 users is
a good way to use Spread for sure cos i won't complain
i did not receive one shot ... In my case message HAVE
to arrive.

2) Knowing who is connected
I am aware about the uncertainty brought by my local
structure (but how to do differently then ?), as it is
not synchronized with the Spread daemon (I.E he may be
warned "before" my structure that the group membership
But i don't think this problem in this case is related
to this, this test fails every time ...

Is there a more standard/secure way to get the
information of people connected ?

3) Spread delivery garantee (for people in the group)
I though that a Spread garantee was making you sure
that every body in the group will get the message even
in case of network problems ...
What does Spread then to garantee deliveries even in
case of network problems ? It does not store such
messages ?
Is my network problem simulation wrong ?


Thank you very much for your help


Yahoo! Mail : votre e-mail personnel et gratuit qui vous suit partout ! 
Créez votre Yahoo! Mail sur http://fr.benefits.yahoo.com/

Dialoguez en direct avec vos amis grâce à Yahoo! Messenger !Téléchargez Yahoo! Messenger sur http://fr.messenger.yahoo.com

More information about the Spread-users mailing list