I'm developing a custom instant messenger for the office as we have need of rather unique IM needs.
So far I have two groups of users: Group and Individual.
The group users can comunicate with their group and all other types of groups. Individual users can only communicate with one specified user.
So right now the flow goes:
Client notifies server it's online.
Server sends a filtered list of other same group members
Server sends a list of of other different group members
If user has individual members attatached, it sends a list of those users too
Server then iterates through all other connnect clients to send the online presence of this new client to the appropriate users.
I'm doing this on server side to cut back on bandwidth (probably not nessacary, but requested)
My question would be this: Should I keep the server more simple and just serve as an echo server and echo everything? Then the contact list filtering would be done on the client side. I just can't figure out which is a better use of system resources. More filtering and less socketwork or more socketwork and less filtering on the server?