A realtime websocket chat application built using Dart, Shelf, and JavaScript.
Class | Usecase |
---|---|
Client |
Represents a User or device. |
Room |
Represents a Chat or group. |
Message |
Represents a message sent by user. |
Client
(s) can join a Room
and pass Message
objects among them using websockets.
Each Room
contains Message
(s) which are stored in server memory and a self destruction timer (5 minutes) which gets triggered as soon as all Client
(s) leave the Room
and timer can be aborted if a Client
rejoins the Room
within 5 minutes.
- Dart SDK
- Code Editor with dart plugins.
-
Clone this repo using
git clone
or download this repo and extract it. -
Download all dependencies in project root directory
pub get
-
Use this command to start server
dart src/main.dart
-
By default server will be running at
localhost:8080
and websocket atlocalhost:8080/ws
. Now you can visitlocalhost:8080
using a web browser.