A full-featured (simple message, voice, video) flutter chat application by SignalR and WebRTC.
- Full Authentication service
- Bad request models and authentication validation from server (e.g. email, password, user exists)
- Storing authentication token
- On demand log-out (e.g. an unauthorized request)
- Chat list
- Chat page and simple chatting
- Communication between chat list and page Bloc
- Call Bloc which is responsible for before starting a call
- Full webRTC handshaking through SignalR (Offer, Answer, Candidate, HangUp, Reject)
- Camera and microphone functionality (e.g. switching camera, toggling camera and microphone and torch)
- All webRTC functionality are based on Bloc and suitable states and events
- All services communicate with their own providers
- All Blocs communicate with services through their repositories
- This application uses a free STUN and TURN server from here which just works well on local network. Please mention good STUN and TURN servers in the issue.
- The server source code is not open-source, but I will ask them to provide an open-source simple chatting. If you have time to make the server code with a simple user chatting and a simple socket handling, I will be delighted to integrate with the Flutter Chat.
Do you have any questions related to architectures and features, don't hesitate to make your first discussion and join my Discord server.
Have an idea? PRs and issues are most welcome.
Got no time? If you found my project and articles helpful, Share and Star.