@@ -41,7 +41,10 @@ import { useUserViewMode } from "util/hooks";
4141import { isNumeric } from "util/stringUtils" ;
4242import { NameConfig , withExposingConfigs } from "../../generators/withExposing" ;
4343
44- import axios from "axios" ;
44+ import { v4 as uuidv4 } from 'uuid' ;
45+
46+ // import axios from "axios";
47+
4548import AgoraRTC , {
4649 ICameraVideoTrack ,
4750 IMicrophoneAudioTrack ,
@@ -51,7 +54,7 @@ import AgoraRTC, {
5154 ILocalVideoTrack ,
5255} from "agora-rtc-sdk-ng" ;
5356
54- import { JSONValue } from "@lowcoder-ee/index.sdk" ;
57+ import { JSONValue , NumberControl } from "@lowcoder-ee/index.sdk" ;
5558import { getData } from "../listViewComp/listViewUtils" ;
5659import AgoraRTM , { RtmChannel , RtmClient } from "agora-rtm-sdk" ;
5760
@@ -103,7 +106,16 @@ export const client: IAgoraRTCClient = AgoraRTC.createClient({
103106 mode : "rtc" ,
104107 codec : "vp8" ,
105108} ) ;
106- AgoraRTC . setLogLevel ( 3 ) ;
109+
110+ AgoraRTC . setLogLevel ( 4 ) ;
111+
112+ /*
113+ 0: DEBUG. Output all API logs.
114+ 1: INFO. Output logs of the INFO, WARNING and ERROR level.
115+ 2: WARNING. Output logs of the WARNING and ERROR level.
116+ 3: ERROR. Output logs of the ERROR level.
117+ 4: NONE. Do not output any log.
118+ */
107119
108120let audioTrack : IMicrophoneAudioTrack ;
109121let videoTrack : ICameraVideoTrack ;
@@ -112,23 +124,6 @@ let userId: UID | null | undefined;
112124let rtmChannelResponse : RtmChannel ;
113125let rtmClient : RtmClient ;
114126
115- const generateToken = async (
116- appId : any ,
117- certificate : any ,
118- channelName : any ,
119- serverurl : any
120- ) => {
121- let response = await axios . post (
122- serverurl ?? "https://sandbox.wiggolive.com/token/rtc" ,
123- {
124- appId,
125- certificate,
126- channelName,
127- }
128- ) ;
129- return response . data ;
130- } ;
131-
132127const turnOnCamera = async ( flag ?: boolean ) => {
133128 if ( videoTrack ) {
134129 return videoTrack . setEnabled ( flag ! ) ;
@@ -150,7 +145,7 @@ const turnOnMicrophone = async (flag?: boolean) => {
150145} ;
151146const shareScreen = async ( sharing : boolean ) => {
152147 try {
153- if ( sharing == false ) {
148+ if ( sharing === false ) {
154149 await client . unpublish ( screenShareStream ) ;
155150 await client . publish ( videoTrack ) ;
156151 videoTrack . play ( userId + "" ) ;
@@ -184,20 +179,16 @@ const leaveChannel = async () => {
184179
185180const publishVideo = async (
186181 appId : string ,
187- channel : any ,
188- height : any ,
189- certifiCateKey : string ,
190- serverurl : string
182+ channel : string ,
183+ rtmToken : string ,
184+ rtcToken : string
191185) => {
192- let token = null ;
193- if ( certifiCateKey ) {
194- token = await generateToken ( appId , certifiCateKey , channel , serverurl ) ;
195- }
196- await turnOnCamera ( true ) ;
197- await client . join ( appId , channel , token , userId ) ;
198- await client . publish ( videoTrack ) ;
199-
200- await rtmInit ( appId , userId , channel ) ;
186+ // initializing the Agora Meeting Client
187+ await turnOnCamera ( true ) ;
188+ await client . join ( appId , channel , rtcToken , userId ) ;
189+ await client . publish ( videoTrack ) ;
190+ // initializing the Agora RTM Client
191+ await rtmInit ( appId , userId , rtmToken , channel ) ;
201192} ;
202193
203194const sendMessageRtm = ( message : any ) => {
@@ -208,10 +199,11 @@ const sendPeerMessageRtm = (message: any, toId: string) => {
208199 rtmClient . sendMessageToPeer ( { text : JSON . stringify ( message ) } , toId ) ;
209200} ;
210201
211- const rtmInit = async ( appId : any , uid : any , channel : any ) => {
202+ const rtmInit = async ( appId : any , uid : any , token : any , channel : any ) => {
212203 rtmClient = AgoraRTM . createInstance ( appId ) ;
213204 let options = {
214205 uid : String ( uid ) ,
206+ token : token ? token : null ,
215207 } ;
216208 await rtmClient . login ( options ) ;
217209
@@ -236,12 +228,13 @@ export const meetingControllerChildren = {
236228 endCall : withDefault ( BooleanStateControl , "false" ) ,
237229 sharing : withDefault ( BooleanStateControl , "false" ) ,
238230 appId : withDefault ( StringControl , trans ( "meeting.appid" ) ) ,
239- tokenServerUrl : withDefault ( StringControl , trans ( "meeting.serverurl" ) ) ,
240231 participants : stateComp < JSONValue > ( [ ] ) ,
241232 usersScreenShared : stateComp < JSONValue > ( [ ] ) ,
242233 localUser : jsonObjectExposingStateControl ( "" ) ,
243- meetingName : stringStateControl ( "meetingName" ) ,
244- certifiCateKey : stringStateControl ( "" ) ,
234+ localUserID : withDefault ( stringStateControl ( trans ( "meeting.localUserID" ) ) , uuidv4 ( ) + "" ) ,
235+ meetingName : withDefault ( stringStateControl ( trans ( "meeting.meetingName" ) ) , uuidv4 ( ) + "" ) ,
236+ rtmToken : stringStateControl ( trans ( "meeting.rtmToken" ) ) ,
237+ rtcToken : stringStateControl ( trans ( "meeting.rtcToken" ) ) ,
245238 messages : stateComp < JSONValue > ( [ ] ) ,
246239} ;
247240let MTComp = ( function ( ) {
@@ -272,8 +265,7 @@ let MTComp = (function () {
272265 } ) ;
273266 const [ rtmMessages , setRtmMessages ] = useState < any > ( [ ] ) ;
274267 const [ localUserSpeaking , setLocalUserSpeaking ] = useState < any > ( false ) ;
275- const [ localUserVideo , setLocalUserVideo ] =
276- useState < IAgoraRTCRemoteUser > ( ) ;
268+ const [ localUserVideo , setLocalUserVideo ] = useState < IAgoraRTCRemoteUser > ( ) ;
277269 const [ userJoined , setUserJoined ] = useState < IAgoraRTCRemoteUser > ( ) ;
278270 const [ userLeft , setUserLeft ] = useState < IAgoraRTCRemoteUser > ( ) ;
279271
@@ -503,17 +495,6 @@ let MTComp = (function () {
503495 . setPropertyViewFn ( ( children ) => (
504496 < >
505497 < Section name = { sectionNames . basic } >
506- { children . appId . propertyView ( { label : trans ( "meeting.appid" ) } ) }
507- { children . certifiCateKey . propertyView ( {
508- label : trans ( "meeting.certifiCateKey" ) ,
509- } ) }
510- { children . meetingName . propertyView ( {
511- label : trans ( "meeting.meetingName" ) ,
512- } ) }
513- { children . tokenServerUrl . propertyView ( {
514- label : trans ( "meeting.serverurl" ) ,
515- } ) }
516-
517498 { children . placement . propertyView ( {
518499 label : trans ( "drawer.placement" ) ,
519500 radioButton : true ,
@@ -539,6 +520,23 @@ let MTComp = (function () {
539520 label : trans ( "prop.showMask" ) ,
540521 } ) }
541522 </ Section >
523+ < Section name = { sectionNames . meetings } >
524+ { children . appId . propertyView ( {
525+ label : trans ( "meeting.appid" )
526+ } ) }
527+ { children . meetingName . propertyView ( {
528+ label : trans ( "meeting.meetingName" ) ,
529+ } ) }
530+ { children . localUserID . propertyView ( {
531+ label : trans ( "meeting.localUserID" ) ,
532+ } ) }
533+ { children . rtmToken . propertyView ( {
534+ label : trans ( "meeting.rtmToken" ) ,
535+ } ) }
536+ { children . rtcToken . propertyView ( {
537+ label : trans ( "meeting.rtcToken" ) ,
538+ } ) }
539+ </ Section >
542540 < Section name = { sectionNames . interaction } >
543541 { children . onEvent . getPropertyView ( ) }
544542 </ Section >
@@ -635,7 +633,7 @@ MTComp = withMethodExposing(MTComp, [
635633 } ,
636634 execute : async ( comp , values ) => {
637635 if ( comp . children . meetingActive . getView ( ) . value ) return ;
638- userId = Math . floor ( 100000 + Math . random ( ) * 900000 ) ;
636+ userId = comp . children . localUserID . getView ( ) . value === "" ? uuidv4 ( ) : comp . children . localUserID . getView ( ) . value ;
639637 comp . children . localUser . change ( {
640638 user : userId + "" ,
641639 audiostatus : false ,
@@ -658,12 +656,9 @@ MTComp = withMethodExposing(MTComp, [
658656 comp . children . videoControl . change ( true ) ;
659657 await publishVideo (
660658 comp . children . appId . getView ( ) ,
661- comp . children . meetingName . getView ( ) . value == ""
662- ? "_meetingId"
663- : comp . children . meetingName . getView ( ) . value ,
664- comp . children ,
665- comp . children . certifiCateKey . getView ( ) . value ,
666- comp . children . tokenServerUrl . getView ( )
659+ comp . children . meetingName . getView ( ) . value === "" ? uuidv4 ( ) : comp . children . meetingName . getView ( ) . value ,
660+ comp . children . rtmToken . getView ( ) . value ,
661+ comp . children . rtcToken . getView ( ) . value
667662 ) ;
668663 comp . children . meetingActive . change ( true ) ;
669664 } ,
@@ -677,9 +672,9 @@ MTComp = withMethodExposing(MTComp, [
677672 execute : async ( comp , values ) => {
678673 if ( ! comp . children . meetingActive . getView ( ) . value ) return ;
679674 let otherData =
680- values != undefined && values [ 1 ] !== undefined ? values [ 1 ] : "" ;
675+ values !== undefined && values [ 1 ] !== undefined ? values [ 1 ] : "" ;
681676 let toUsers : any =
682- values != undefined && values [ 0 ] !== undefined ? values [ 0 ] : "" ;
677+ values !== undefined && values [ 0 ] !== undefined ? values [ 0 ] : "" ;
683678
684679 let message : any = {
685680 time : Date . now ( ) ,
@@ -711,7 +706,7 @@ MTComp = withMethodExposing(MTComp, [
711706 {
712707 method : {
713708 name : "setUserName" ,
714- description : trans ( "meeting.meetingName " ) ,
709+ description : trans ( "meeting.userName " ) ,
715710 params : [ ] ,
716711 } ,
717712 execute : async ( comp , values ) => {
@@ -720,6 +715,28 @@ MTComp = withMethodExposing(MTComp, [
720715 comp . children . localUser . change ( { ...userLocal , userName : userName } ) ;
721716 } ,
722717 } ,
718+ {
719+ method : {
720+ name : "setRTCToken" ,
721+ description : trans ( "meeting.rtcToken" ) ,
722+ params : [ ] ,
723+ } ,
724+ execute : async ( comp , values ) => {
725+ let rtcToken : any = values [ 0 ] ;
726+ comp . children . rtcToken . change ( rtcToken ) ;
727+ } ,
728+ } ,
729+ {
730+ method : {
731+ name : "setRTMToken" ,
732+ description : trans ( "meeting.rtmToken" ) ,
733+ params : [ ] ,
734+ } ,
735+ execute : async ( comp , values ) => {
736+ let rtmToken : any = values [ 0 ] ;
737+ comp . children . rtmToken . change ( rtmToken ) ;
738+ } ,
739+ } ,
723740 {
724741 method : {
725742 name : "endMeeting" ,
@@ -758,7 +775,10 @@ export const VideoMeetingControllerComp = withExposingConfigs(MTComp, [
758775 new NameConfig ( "appId" , trans ( "meeting.appid" ) ) ,
759776 new NameConfig ( "localUser" , trans ( "meeting.host" ) ) ,
760777 new NameConfig ( "participants" , trans ( "meeting.participants" ) ) ,
761- new NameConfig ( "meetingActive" , trans ( "meeting.meetingName " ) ) ,
778+ new NameConfig ( "meetingActive" , trans ( "meeting.meetingActive " ) ) ,
762779 new NameConfig ( "meetingName" , trans ( "meeting.meetingName" ) ) ,
763- new NameConfig ( "messages" , trans ( "meeting.meetingName" ) ) ,
780+ new NameConfig ( "localUserID" , trans ( "meeting.localUserID" ) ) ,
781+ new NameConfig ( "messages" , trans ( "meeting.messages" ) ) ,
782+ new NameConfig ( "rtmToken" , trans ( "meeting.rtmToken" ) ) ,
783+ new NameConfig ( "rtcToken" , trans ( "meeting.rtcToken" ) ) ,
764784] ) ;
0 commit comments