Implement a chat server which allows users to authenticate, chose room and send text lines to other users in the same room. The service should be scalable in the number of connected users, allow subscription of notable events, and provide a REST interface for management and description.
Prerequisite: This projects requires that you have Java 8, 0MQ 3.2.5 and Maven installed.
Available soon.
- Download the package, go to the Common folder and compile with "mvn clean package";
- Go to the ChatServer folder and run the "dbServer" file to initialize the database;
- Run the "run" file to compile and run the server;
- Go to the NotificationClient folder and tun the "run" file to start receiving notifications.
Go to the ChatClient folder and run the file "run" as many times as GUI clients you want.
To use telnet type "telnet localhost 1111" All commands start with the ":" character for an easiest parsing.
- :create username password
- :remove username password
- :login username password
- :logout
- :cr/:changeroom roomName
- :private user
- :inbox
- :h/:help
- User registration, given name and password; registration removal; a user should be authenticated to use the service;
- Choice of room (from existing ones), to which text messages will be sent;
- Sending of private messages to other connected users;
- Have a simple text-based protocol to allow simple chat clients, being usable by telnet;
- Have a REST API for management and description: e.g., room creation/removal, list of rooms, list of users in room;
- Have a notification API to allow subscribing to relevant events: room creation/removal, user joining/leaving room;