This is a school project that I worked on. Besides what's on the title, what is so special about this is that each client can become a server when it detects that the server is down, and it can do it via UDP. Sadly, what makes it interesting is probably also what makes it not suitable for real life applications.
- It communicates via XML. The following messages are allowed: -- Broadcast to every registered user -- Request to get all connected users -- Send a private message -- Exit the chat
- High availability: If the server goes down any client can take the role of the server
- The clients' clocks are synchronized via the Berkeley algorithm
- The client needs to show weather information. This is done via Open weather map
- A client can send files to another client
- They can also send offline messages that the recipient will get as soon as he reconnects
- Block users
- Update Twitter status thanks to Xiam's library
Make
runs the server
Make client
runs a process as a client
This is inspired by IRC, so you will be familiar with most of the commands
someMessage Broadcasts a message to all users. This is the option by default
/nick SomeNick This changes your nickname. It is necessary at login
/names Gives you the names of all connected users.
/msg Buddy Hello man Says "Hello man" to the user with the nickname "Buddy"
/send Buddy file.jpg Sends file "file.jpg" to the user with the nickname "Buddy"
/block Buddy Blocks the user "Buddy" from sending messages to you
/twitter I like this day! Updates your Twitter status with the message shown
/quit Exits the chat
/admin start Starts a server on this instance
/admin stop Stops the server on this instance
https://github.com/xiam/twitter https://github.com/gosexy/yaml