- Introduction
- Features
- Architecture
- Installation
- Usage
- Technical Challenges
- Contributing
- License
- Contact
Welcome to our Simple Chat Application developed using Java RMI. This project demonstrates a basic real-time chat system where users can interact through a centralized server. The application leverages Java RMI for efficient client-server communication, offering both public and private messaging functionalities.
- Real-time Messaging: Chat with other users in real time.
- Public and Private Messages: Send messages to all users or privately to a specific user.
- User Nicknames: Choose a nickname upon connection.
- Simple User Interface: Easy-to-use interface for quick interaction.
- Join/Leave Chat: Connect or disconnect from the chat server at any time.
The application follows a client-server architecture using Java RMI. Here's a brief overview:
- ChatServer: Manages messaging logic and client connections.
- ChatClient: Connects to the server and allows user interaction via a graphical interface.
- ChatUI: Provides the graphical user interface for users.
- ConnectedClient: Manages connected clients and facilitates private messaging.
- Java Development Kit (JDK) 8 or higher
- Apache Ant (optional, for building the project)
- Clone the repository
git clone git@github.com:ElazzouziHassan/RMI-Final.git
cd RMI-Final
- Compile the project
javac -d bin src/**/*.java
- Start the RMI registry
rmiregistry
- Run the server
java -cp bin server.ChatServer
- Run the client
java -cp bin client.ChatClient
Note!: After clonig the project, then from you IDE do the following this steps:
- Run
ChatServer.java
- Run
ChatUI.java
- Start the server: Ensure the server is running and RMI registry is active.
- Launch the client: Open multiple clients to simulate multiple users.
- Enter Nickname: Enter a unique nickname for each client.
- Send Messages: Use the input field to send public or private messages.
- Private Messaging: select a specific user from the list , write your message and click the button "PRV MSG"
- Challenge: Ensuring reliable communication between clients and the server.
- Solution: Implementing Java RMI for direct and real-time communication.
We welcome contributions to enhance this project! Please follow these steps:
- Fork the repository
- Create a new branch
git checkout -b feature/your-feature-name
- Make your changes
- Commit your changes
git commit -m "Add your feature"
- Push to your branch
git push origin feature/your-feature-name
- Create a Pull Request
This project has been developed for educational purposes and it is open source so anyone is free to use as he wish.
For any questions or feedback, please reach out to us at:
-
El Azzouzi Hassan
- Contact : Email
- LinkedIn : Profil LinkedIn
-
Yahia Ezzahri
- Contact : Email
- LinkedIn : Profil LinkedIn
-
Ettalbi Kabira
- Contact : Email
- LinkedIn : Profil LinkedIn