For the last couple of days I've been working on a P2P IMing service which is asymmetrically encrypted from end to end. I've run into a fork in the road and I'd like to get this community's opinion on the matter. I realize some of you are still in your coding diapers and others are turning gray up top, which is why I feel this is the perfect community to offer a blend of insight and creativity. This project is fully open sourced and written in Python3. So without further ado. . .
My big problem lies in how the network is actually put together. These are the two options I'm looking at:
A) Build an entire application which has server and client
B) Build a server and let clients jump from server to server as network integrity weakens in areas
In option A the client and server are one item. Each node on the network handles it's own connections and it's own network access points. The disadvantages to this are that it makes it harder for developers to integrate their own clients into the network, as each developer would have to worry about network protocol and message delivery protocol.
In option B the network is comprised of servers which are all joined together. Each client joins about 10 servers at once and uses them equally. If the servers are busy or overloaded, they refer the client elsewhere. This would still be the same in option A but it illustrates the point that there is no central server to which the client in B would be assigned to (unless the developer of the user's client decided to make one). Disadvantages to this would be that private LANs would require their own server to use the software and that everyone on the LAN would have to know the server address.
What do you think? Do you have better suggestions? Thanks for reading. Leave comments below .
Option A or B
Post a Reply
|Oldest Newest Rating|
Chat about anything non-computer related including, music, movies, tuna sandwiches, and more!
|Bucky Roberts Administrator|