Dieses Projekt implementiert einen einfachen Chatserver, der grundlegende Funktionen wie Benutzerverwaltung, private Nachrichten und Chatrooms unterstützt. Der Server bietet eine RESTful-API für die Kommunikation und verwendet JSON für den Datenaustausch.
- Java 17 oder höher installiert.
- Apache Maven installiert und im Systempfad verfügbar.
- Repository klonen:
git clone git@gitlab.fhnw.ch:furkan.aydin/chatproject.git cd chat-server - Abhängigkeiten herunterladen und Projekt bauen:
mvn clean install
- Starte die Anwendung mit folgendem Befehl::
mvn exec:java -Dexec.mainClass="org.chatroom.server.Server"
Der Server wird standardmäßig auf Port 50001 gestartet.
- Testen der Verfügbarkeit des Server:
curl http://localhost:50001/ping
Erwartete Antwort
{"ping":true}
- Beispiel: Registriere einen neuen Benutzer:
curl -X POST -H "Content-Type: application/json" \ -d '{"username":"userx","password":"passwordx"}' \ http://localhost:50001/user/register
- Benutzerverwaltung:
- Registrierung neuer Benutzer
- Benutzer-Login mit Token-basierter Authentifizierung
- Status von Benutzern (online/offline) abfragen
- Nachrichten:
- Senden von privaten Nachrichten zwischen Benutzern
- Empfang von Nachrichten über Abfragen (Polling)
- Chatrooms:
- Erstellen, Beitreten, Verlassen und Löschen von Chatrooms
- Nachrichten an alle Mitglieder eines Chatrooms senden
src/
main/
java/
org.chatroom.server/
handlers/
ChatHandler.java # Verarbeitet Chat- und Chatroom-Anfragen
PingHandler.java # Verarbeitet /ping-Anfragen
UserHandler.java # Verarbeitet Benutzeranfragen
Account.java # Verwaltung von Benutzerkonten
Client.java # Verwalten eingeloggter Benutzer
Chatroom.java # Verwaltung von Chatrooms
Server.java # Hauptklasse, die den Server startet
CleanupThread.java # Entfernt inaktive Benutzer und abgelaufene Tokens
test/ # Unit- und Integrationstests
resources/ # Ressourcen-Dateien (falls vorhanden)
Ece Kaya
Furkan Aydin
Philipp Dunkel