Izingxenye Ezintathu Zokwakha, Umgomo Owodwa
Ngaphakathi, i-Timmy yakhelwe ngendlela elula nesebenzayo: Flutter yohlelo lokusebenza, WebRTC yomsindo nevidiyo ngesikhathi sangempela, kanye ne- Firebase yokuxhumanisa. Bengingafuni ukwakha inkundla enkulu edlulisa yonke into ngefu. Ingxenye ngayinye kufanele yazi okuncane ngangokunokwenzeka, kodwa isebenze ngokwethembeka nezinye.
I-WebRTC: Ukuxhumana Okuqondile, Kubethelwe Ngokuzenzakalela
I-WebRTC (Web Real-Time Communication) idlulisa umsindo nevidiyo phakathi kwedivayisi yengane neyomzali. Esimeni esihle kakhulu, idatha ihamba ngqo phakathi kwamadivayisi amabili, i-peer-to-peer, ngaphandle kweseva yemidiya phakathi.
Konke ukuxhumana kwe-WebRTC kusebenzisa i-DTLS-SRTP ngokuzenzakalela. Uma othile ebamba amaphakethe enethiwekhi, ngeke akwazi ukuzwa umsindo noma ukubona ividiyo. Lokhu kubethela kuyingxenye yephrothokholi futhi akunakumane kucishwe ku-WebRTC.
Lokho kwakuyiphuzu elibalulekile kimi: imidiya yasegumbini lengane akufanele igcinwe kuseva yami. Ihlala phakathi kwamadivayisi enu.
Ukushintshaniswa Kolwazi Lokusetha Uxhumano nge-Firebase Firestore
Ngaphambi kokuba i-WebRTC iqale, amadivayisi kudingeka atholane futhi avumelane ngendlela angaxhuma ngayo. Leyo ngxenye ibizwa ngokuthi ukushintshaniswa kolwazi lokusetha uxhumano. I-Timmy isebenzisa i-Firebase Firestore, isizindalwazi samafu se-Google, kulokho.
Kushintshaniswa idatha yobuchwepheshe bokuxhumana kuphela:
- Iziphakamiso nezimpendulo ze-SDP: Zichaza amakhono amadivayisi (ama-codec asekelwayo, ukucaca kwesithombe, njll.).
- Izindlela zokuxhumana ezingase zisebenze ze-ICE: Izindlela zenethiwekhi ezingase zisetshenziswe amadivayisi ukuze afinyelelane.
Umsindo nevidiyo akufiki ku-Firebase. I-Firestore idlulisa kuphela idatha yobuchwepheshe bokuxhumana. I-Timmy iphinde ibethele lolu lwazi lokusetha uxhumano, ukuze i-Firestore ingabi yindawo eyodwa okuhlangana kuyo idatha ye-SDP ne-ICE ingabethelwe.
Amaseva e-TURN: Lapho Indlela Eqondile Ingasebenzi
Amanye amanethiwekhi avimba ukuxhumana okuqondile, isibonelo ama-firewall aqinile noma abanye abahlinzeki benethiwekhi yeselula. Khona-ke i-WebRTC idinga i- relay ye-TURN (Traversal Using Relays around NAT).
I-Timmy iqala ngokuzama iseva ye-TURN yendawo, bese isebenzisa i-Cloudflare njengenye indlela lapho iseva yendawo edlulisayo ingatholakali noma ithwele kakhulu. Iseva edlulisayo idlulisa amaphakethe abethelwe. Ayitholi okhiye bomsindo noma bevidiyo; ukubethela kwe-WebRTC kuqhubeka kusebenza.
Imininingwane yokungena ye-TURN ivela ku-Firebase Cloud Function futhi isebenza amahora angu-24 kuphela. Ngokubona kwami, imininingwane yokungena ehlala njalo ohlelweni lokuqapha ingane ingaba yingozi kakhulu.
I-Nearby Connections: Amadivayisi Ayatholana Ngokuzenzakalela
Ukuze kugwenywe izinyathelo zokusetha eziyinkimbinkimbi phakathi kwedivayisi yengane neyomzali, i-Timmy isebenzisa i- Nearby Connections. I-Google inikeza lolu hlelo lokuthola amadivayisi nge-Bluetooth ne-WiFi.
Ukubhangqa okuzenzakalelayo ku-Timmy kusebenza ngaphandle kokufaka ikhodi ngesandla: amadivayisi ayatholana futhi athola indawo efanayo yokushintshisana ngokhiye. Uma lokho kwehluleka, kukhona ikhodi yezinhlamvu ezi-4 ongayifaka. Ikhodi yokubhangqa ayilokothi iphume kudivayisi; i-Firestore ibona kuphela i-hash ye-cryptographic (SHA-256) njengesihlonzi sedokhumenti.
Ukuqinisekiswa Kobunikazi Ngokungaziwa
I-Timmy isebenzisa i-Firebase Anonymous Authentication. Lapho ivulwa okokuqala, idivayisi ngayinye ithola i-ID yesikhashana engavezi ubunikazi bomuntu. Ayikho i-akhawunti, ikheli le-imeyili noma iphasiwedi. I-ID ikhona kuphela ukuze kuphoqelelwe imithetho ye-Firestore: amadivayisi aqinisekisiwe kuphela angafunda noma abhale idatha yeseshini.
Ukwakhiwa Kohlelo: Ubani Othumelayo, Ubani Otholayo
I-Timmy inezindlela ezimbili:
- Imodi Yengane (othumelayo): Idivayisi ithatha umsindo ngemakrofoni bese iwuthumela kudivayisi yomzali nge-WebRTC. Ngokuzithandela, ikhamera ingavulwa; ividiyo nayo ithunyelwa ngqo.
- Imodi Yomzali (otholayo): Idivayisi ithola umsindo nevidiyo, ibonise okubonwa ikhamera, futhi inikeza i-push-to-talk yemiyalezo emifushane yezwi eya kudivayisi yengane.
Izilawuli ezifana ne-push-to-talk nokuvula noma ukuvala ikhamera zisebenzisa i- DataChannel, esinye isiteshi se-WebRTC esithumela imiyalezo emincane ebethelwe ngqo phakathi kwamadivayisi.
Kungani i-Flutter?
I-Flutter iwuhlaka lwe-Google lokwakha izinhlelo zokusebenza ezinkundleni eziningi. Ku-Timmy, lokho kusho ukuthi ngingabhala ingxenye enkulu yekhodi yokusebenza kanye bese ngiyisebenzisa ku-Android naku-iOS. I-Timmy iyatholakala ku-Android, kanti inguqulo ye-iOS isiseduze nokukhishwa. Ukuphindaphindwa kwekhodi okuncane kusho izindawo ezimbalwa lapho amaphutha angangena khona.
Isifinyezo
Umthetho wobuchwepheshe ulula: i-Timmy kufanele iphathe kuphela idatha eyidinga ngempela. I-WebRTC ivikela imidiya, i-Firebase ixhumanisa ukusethwa kokuxhumana, i-TURN ibona kuphela amaphakethe abethelwe, kanti i-Nearby Connections yenza ukubhangqa kube lula.
Ubuchwepheshe obuhle bugcina buyingxenye engabonakali yokuphila kwansuku zonke. Buyasebenza ngaphandle kokwenza igumbi lengane libe iphrojekthi yamafu.