Hello everyone. My name is Dmitry, and I am a typical representative of the rowing caste on gallery X. The main language used is PHP, but sometimes I have to write in others.
Background
Somehow, another, slightly unfinished project, the "killer" of product Y came along. Everything would be fine if it had not been done initially by the Indians. The initial analysis of the code and all the evaluation of the features was done by another developer. As a result, it was decided to take the heritage of the Hindus, tweak it a little and for food.
A little tweak and in production, stretched out for about half a year. By this time, everyone had already understood that it would be better to choose the option - to rewrite it again, but it was too late, and did not want to step back. As a result, the project went live , but it was damn scary and inconvenient from the UI / UX side . Therefore, a smooth redesign of everything and everyone began. Everything described above was before me, I came to the project only half a year later.
Problem statement and initial conditions
New sprint, new tickets. One of the tasks sounds like: "Redesign of the current video / audio call mechanism". For this functionality, we used Agora Web SDK 3.4.0v . Why Agora - because Indians chose it (most likely because of 10,000 free minutes). Perhaps still bribed by the fact that there is an SDK for various platforms:
Go
The first thing I did was take a look at the latest version of the Web SDK . As it turned out, a completely new major version of Agora Web SDK 4.x has already been released . Well, if we will completely redesign anyway, then why not take the new version and use it. There will still be a full run from the QA side, in addition - the call flow itself has changed. No sooner said than done, only the entry alerted:
Web SDK ( React Native SDK ), .
- 3 - 4 ( , ). - . Agora Web SDK 4.4.0. JS ( ). ( , )
testing . , web - . ( - ).
web, - . - . - . ( ) - . - SDK - https://docs.agora.io/en/Voice/API%20Reference/web_ng/interfaces/iagorartcclient.html , . , . , Agora Web SDK 4.4.0 Agora React Native API 3.!
, - - "". , Agora Web SDK 3.x.
( 3.x) SDK. , - . . ( ). , - , - , ( - channel). , 4.x.
- . , , c HTML, . , . . . 3.x ( ). HTML JS . . . HTML - . , ...
" " HTML JS . ... ? , . -- 3.x, . - 3.x. - . - . . :
, . (uid ). join:
! . , .
- . - number, ( ) int . ... , , - testing. web - , - , . ...
, , . . , , , - , . . . QA . . QA - , , - . -, ... - ...
, - STUN / TURN ( STUN , TURN ).
, - NAT - ? . . , , rtc/vp8, live/h264.
WebRTC.
P.S. - - .