This week's book giveaways are in the Refactoring and Agile forums.
We're giving away four copies each of Re-engineering Legacy Software and Docker in Action and have the authors on-line!
See this thread and this one for details.
Win a copy of Re-engineering Legacy Software this week in the Refactoring forum
or Docker in Action in the Cloud/Virtualization forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

IM Chat Client/Server flow?

 
Rob Poulos
Ranch Hand
Posts: 49
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
hopefully this is the right forum for this

I am currently working on an instant messaging chat application and was wondering how the flow of communication should go between Client A and Client B

My initial thought was to have Client A & B connect to Server A and pull down the connection information (IP's, Ports, etc..) for their "buddies". at this point Clients A & B would be able to iniitiate a direct connection between themselves, leaving Server A out of it. Server A would periodically broadcast changed data to clients but thats about it. It would be the clients responsibility to manage its connections (chat sessions). Might run into some difficulties doing this with firewalls, routers, etc...

or... all communication between Clients A & B must pass through Server A before that communication is passed on to Client B, making Server A the manager of all connections (chat sessions). This is definitly more overhead for the Server and more hops means more points of failure. But, this drasticaly reduces the potential issue stemming from Firewall/router issues.

your thoughts?
 
Joe Ess
Bartender
Pie
Posts: 9259
10
Linux Mac OS X Windows
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Your "initial thought" is a common "peer-to-peer" networking scheme. Your second thought is a typical "client-server" scheme. They're both valid ways to implement a network application.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic