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.
Got no time? If you found my project and articles helpful, Share and Star.