WebRTC Phone based on MQTT, Flutter

Overview

Flutter WebRTC Phone

Using a MQTT client and a Flutter, an example source of WebRTC bidirectional video communication.

WebRTC

WebRTC를 이용한 화상/데이터 통신은 기본적으로 시그널 서버가 필요하다. 일반적으로 Websocket을 많이 사용하는데 서버는 클라이언트에서 전송되는 SDP, Candidate를 릴레이 하여 클라이언트가 연결할 상대방의 IP와 Port 정보를 주고 받은 다음 받은 정보를 이용하여 P2p 접속을 시도한다.

WebRTC image/data transmission necessitates the use of a signal server. Websocket is commonly used, however the server relays SDP and Candidate from the client to exchange port information with the other party's IP to which the client will connect, and then tries to connect to P2P using the received information.

MQTT

MQTT는 발행/구독 기반으로 일대일, 일대다 데이터 통신에 적합하고 구독 채널을 트리구조로 구성 할 수 있기 때문에 Websocket에서 채팅방-서브 채팅방을 구현하는 기능을 아주 간단하게 구현 할 수 있다.

MQTT is suitable for one-to-one and one-to-many data communication based on issuance/subscription, and it can configure subscription channels in a tree structure, making chatroom-subchatroom in websocket very simple to implement.

IDEA

WebRTC 화상통신앱을 만들며 처음부터 이 생각을 했다. WebSocket으로 채팅방을 만들지 않고 MQTT를 이용하면 안될까? Mosquitto 서버라면 보안성 문제도 쉽게 해결 할 수 있고 성능도 우수한 시그널 서버로 활용할 수 있지 않을까? 그래서 한번 해봤다.

While developing a WebRTC video communication software, I had this in mind from the start. Is it possible to use MQTT without using WebSocket to create a chat room? Wouldn't Mosquitto servers be able to simply overcome security issues and function as high-performance signal servers? So I gave it a shot.

결론적으로 이 프로젝트에서 WebRTC 통신을 하기 위한 시그널 서버는 만들지않았다.

Finally, no signal server for WebRTC communication was established in this project.

ETCS

P2p연결을 위해 Google Stun 서버를 사용하며 3G, LTE에서 연결이 되지 않을수도 있다. Stun 서버를 통한 P2p 연결이 불가능한 경우는 Turn 서버를 개별적으로 설치하고 운영해야 하는데 오픈소스인 Coturn을 활용하여 운용이 가능하다. WebRTC와 관련한 코드는 시그널 기능에 따른 많은 코드들이 요구되지만 셈플에서는 가장 기본적인 통신 기능만을 구현 했다.

For P2P connections, a Google Stun server is utilized, which may or may not be connected through 3G or LTE. If a P2P connection through the Stun server is not available, the Turn server must be installed and operated separately, however it can be done with the open source Coturn. WebRTC code necessitates a large number of codes depending on the signal function, but the sample only performed the most basic communication function.

http://practical.kr/?p=521

You might also like...

A beautiful and cross platform NHentai Client, Support desktop and mobile phone

A beautiful and cross platform NHentai Client, Support desktop and mobile phone

A beautiful and cross platform NHentai Client. Support desktop and mobile phone (Mac/Windows/Linux/Android/IOS).

Dec 29, 2022

App to seamlessly share files/images from your phone to your pc

App to seamlessly share files/images from your phone to your pc

Self-Share App to seamlessly share files/images from your phone to your pc Image

May 28, 2022

Flutter Music Player - First Open Source Flutter based material design music player with audio plugin to play local music files.

Flutter Music Player - First Open Source Flutter based material design music player with audio plugin to play local music files.

Flutter Music Player First Open Source Flutter based Beautiful Material Design Music Player(Online Radio will be added soon.) Demo App Play Store BETA

Jan 8, 2023

AuthPass - Password Manager based on Flutter for all platforms. Keepass 2.x (kdbx 3.x) compatible.

AuthPass - Password Manager based on Flutter for all platforms. Keepass 2.x (kdbx 3.x) compatible.

AuthPass.app - Open Source Password Manager for mobile and desktop AuthPass - Password Manager based on Flutter for all platforms. Keepass 2.x (kdbx 3

Jan 5, 2023

gui automation based on pyautogui python as backend and flutter desktop as frontend, drag and drop tool, no coding required.

gui automation based on pyautogui python as backend and flutter desktop as frontend, drag and drop tool, no coding required.

GUI_AUTOMATION gui automation based on pyautogui python as backend and flutter desktop as frontend, drag and drop tool, no coding required. Install py

Oct 30, 2022

A Flutter app based on the design of the Social Media Integeration App

A Flutter app based on the design of the Social Media Integeration App

A Flutter app based on the design of the Social Media Integeration App

Dec 8, 2021

Flutter based android app

Ask Us Ask Us is a flutter based android app. It's basically a discussion forum somewhat like Quora, designed to ask questions, share their experience

Dec 13, 2022

Body mass index (BMI) is a measure of body fat based on height and weight that applies to adult men and women. Here is the simple program for BMI calculator in Flutter.

Body mass index (BMI) is a measure of body fat based on height and weight that applies to adult men and women. Here is the simple program for BMI calculator in Flutter.

BMI-Calculator Body mass index (BMI) is a measure of body fat based on height and weight that applies to adult men and women. Here is the simple progr

Oct 31, 2021

A flutter based app using python scripts as backend for a quotes app.

A flutter based app using python scripts as backend for a quotes app.

Fluthon APP A new Flutter project which is supported from a python script and lists quotes . Deployment 📲 - /Script - python main.py. - Run main.d

Nov 16, 2022
Owner
Billy park
소프트웨어 개발자
Billy park
The Flutter Firebase Phone Auth application for authenticating the user's mobile phone

Flutter Firebase Phone Auth ✨ About The Flutter Firebase Phone Auth application

Dileepa Bandara 3 Aug 25, 2022
Flutter WebRTC demo with Python server to perform image processing on video frames using OpenCV

flutter + webrtc => python + aiortc + opencv This demo project should help you to get setup sending a video feed from a flutter app to a python backen

John Crisp 42 Dec 29, 2022
Chat-App - A Chat App with flutter and Firebase and Video Calling using WebRTC

chat_app A chat app with flutter and firebase with image message support and vid

Reza Hosseinypour 10 Nov 23, 2022
Munem Sarker 1 Jan 25, 2022
Login and signup using a Phone number and otp verification in flutter app

phone_authentication A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you sta

Ambaliya Avnit Karshanbhai 2 Aug 31, 2022
A starter helper for flutter developers wanting to use firebase phone authentication in their app.

riverpod_firebase_phone_auth A new Flutter project template showing how to handle mobile authentication using Firebase and Riverpod. Packages Used Fre

Douglas Bett 8 Oct 31, 2022
A simple and customizable flutter package for inputting phone number in intl / international format

Intl Phone Number Input A simple and customizable flutter package for inputting

null 1 Jul 21, 2022
The Quack Project on every Emory student phone, organizing the calendars of users & eliminating all frustrations with on-campus dining.

Bestagons Micro-Charter Code Name: Quack Mission Statement: Bestagons are a 6-person team dedicated to developing the experience and skills necessary

null 4 Dec 20, 2021
An App I made to learn of FIrebase Phone Auth and ML Kit

demoapp A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if this

D Srikhar Shashi 1 Oct 19, 2021
Android app to show movie ratings when browsing Netflix, Amazon Prime Video and other supported video streaming apps on the phone

Flutter - Movie Ratings You can get the latest Playstore version here on Playstore - or download directly - 0.4.5 Screenshots of master Search Page Fa

Jay Rambhia 71 Nov 23, 2022