[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [JDEV] Status Notifications.





>What about the case where a client is unpredicatably disconnected (ie
>no-carrier, lost route)? Status messages are no longer received from that
>client..

Oops, did not think about that one.  Maybe a simple poll every few minutes
between the server and the client to make sure the connection is still
there.  That would be a simple timer with an are-you-there type of message
between the client and server, and should keep bandwidth use to a minimum
(packet from the server, packet back, sort of like a single ping, say...
every two minutes or so).


>On a security sense, I would feel more comfortable with most of the
>communication between my client and the Jabber server.. Otherwise I can
>tell the IP address of all of my 'buddies' and boom.. unless there were
>plans to have messages be sent directly? I didn't think that was part of
>the protocol...

I did not mean for the client to send the status messages directly to the
distant users, just a change of status message sent out broadcast-style to
all of the users buddies via the regular messaging route (i.e., client ->
server -> server -> client).  By no means do I want anyone able to get my IP
with such ease and without me knowing.

My thoughts about this are simple, let the client program send any changes
of status to reduce CPU cycles used by the servers, instead of the servers
keeping track of everyone online, checking for people, notifying people, and
everything else the server must accomplish.  If the connection dies/died,
then maybe a regular polling (above) could get around this with minimal
problems, and then the server would inject a status message stating so to
all the users in the server`s roster for the user that lost the connection
(ignoring bounces, of course).

This would just be adding another ``level`` to the messaging scheme:
    server to server
    client to client (status messaging)
        - or server to client (for situations described above)
    user to user (regular instant messaging)

Think of this:
Bob gets online, and his client and server check the status of his buddies,
of which only Alice is already online.  After a few minutes of Alice
bothering Bob whilst he attempts to get important work done, Bob decides to
go stealth-mode.  He changes the status in his client program, which alerts
his server to tell all connected buddies, Alice (and all others, if more
were online), that he has gone offline (to avoid being rude about it
[grin]).  The server then sends out this status message to other users and
servers of other connected parties.  Those user`s clients (Alice`s client)
notify the users (Alice) that Bob has disappeared and is no longer accepting
messages.

This should greatly reduce bandwidth and performance problems associated
with servers following and keeping track of everything.

I dunno, maybe, maybe not.
Deej