Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lefosg/ds-backend-messenger-android-app
https://github.com/lefosg/ds-backend-messenger-android-app
Last synced: 19 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/lefosg/ds-backend-messenger-android-app
- Owner: lefosg
- Created: 2022-06-05T22:27:26.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2022-12-31T20:39:17.000Z (about 2 years ago)
- Last Synced: 2024-11-07T17:55:46.678Z (2 months ago)
- Language: Java
- Size: 12.2 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# DS-Backend-Messenger-Android-App
A project made as a project for the Dirstrubed Systems university course. The project was about building a Messenger-like application with Java. Chat, upload stories, make friends etc, generally including multimedia transmissions. It is based on the Pub-Sub system (Topic-based). This repo is about the backend of the application. There is also the frontend which is an Android Studio app (link of the frontend repo: https://github.com/lefosg/DS-Frontend-Messenger-Android-App). The concept of implementation is as follows:
## Server/Broker
The broker is written in the ```Broker.java``` file. It initiates a typical java ```ServerSocket```. This implementation supports multiple brokers (mainly tested with 3 brokers) and is (somehow) fault tolerant. The broker is multithreaded. For each connection it spawns a thread running the code in ```ClientHandler.java```.### ClientHandler
The ClientHandler is responsible for fulfilling the Client's requests. The requests are wrapped in the ```Value``` class, indicating if it is a command (e.g. "UPLOAD STORY", "FRIEND REQUEST", ..). If media must be sent to the server, it is wrapped in the ```MultimediaFile``` class.