@@ -41,7 +41,10 @@ import { useUserViewMode } from "util/hooks";
41
41
import { isNumeric } from "util/stringUtils" ;
42
42
import { NameConfig , withExposingConfigs } from "../../generators/withExposing" ;
43
43
44
- import axios from "axios" ;
44
+ import { v4 as uuidv4 } from 'uuid' ;
45
+
46
+ // import axios from "axios";
47
+
45
48
import AgoraRTC , {
46
49
ICameraVideoTrack ,
47
50
IMicrophoneAudioTrack ,
@@ -51,7 +54,7 @@ import AgoraRTC, {
51
54
ILocalVideoTrack ,
52
55
} from "agora-rtc-sdk-ng" ;
53
56
54
- import { JSONValue } from "@lowcoder-ee/index.sdk" ;
57
+ import { JSONValue , NumberControl } from "@lowcoder-ee/index.sdk" ;
55
58
import { getData } from "../listViewComp/listViewUtils" ;
56
59
import AgoraRTM , { RtmChannel , RtmClient } from "agora-rtm-sdk" ;
57
60
@@ -103,7 +106,16 @@ export const client: IAgoraRTCClient = AgoraRTC.createClient({
103
106
mode : "rtc" ,
104
107
codec : "vp8" ,
105
108
} ) ;
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
+ */
107
119
108
120
let audioTrack : IMicrophoneAudioTrack ;
109
121
let videoTrack : ICameraVideoTrack ;
@@ -112,23 +124,6 @@ let userId: UID | null | undefined;
112
124
let rtmChannelResponse : RtmChannel ;
113
125
let rtmClient : RtmClient ;
114
126
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
-
132
127
const turnOnCamera = async ( flag ?: boolean ) => {
133
128
if ( videoTrack ) {
134
129
return videoTrack . setEnabled ( flag ! ) ;
@@ -150,7 +145,7 @@ const turnOnMicrophone = async (flag?: boolean) => {
150
145
} ;
151
146
const shareScreen = async ( sharing : boolean ) => {
152
147
try {
153
- if ( sharing == false ) {
148
+ if ( sharing === false ) {
154
149
await client . unpublish ( screenShareStream ) ;
155
150
await client . publish ( videoTrack ) ;
156
151
videoTrack . play ( userId + "" ) ;
@@ -184,20 +179,16 @@ const leaveChannel = async () => {
184
179
185
180
const publishVideo = async (
186
181
appId : string ,
187
- channel : any ,
188
- height : any ,
189
- certifiCateKey : string ,
190
- serverurl : string
182
+ channel : string ,
183
+ rtmToken : string ,
184
+ rtcToken : string
191
185
) => {
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 ) ;
201
192
} ;
202
193
203
194
const sendMessageRtm = ( message : any ) => {
@@ -208,10 +199,11 @@ const sendPeerMessageRtm = (message: any, toId: string) => {
208
199
rtmClient . sendMessageToPeer ( { text : JSON . stringify ( message ) } , toId ) ;
209
200
} ;
210
201
211
- const rtmInit = async ( appId : any , uid : any , channel : any ) => {
202
+ const rtmInit = async ( appId : any , uid : any , token : any , channel : any ) => {
212
203
rtmClient = AgoraRTM . createInstance ( appId ) ;
213
204
let options = {
214
205
uid : String ( uid ) ,
206
+ token : token ? token : null ,
215
207
} ;
216
208
await rtmClient . login ( options ) ;
217
209
@@ -236,12 +228,13 @@ export const meetingControllerChildren = {
236
228
endCall : withDefault ( BooleanStateControl , "false" ) ,
237
229
sharing : withDefault ( BooleanStateControl , "false" ) ,
238
230
appId : withDefault ( StringControl , trans ( "meeting.appid" ) ) ,
239
- tokenServerUrl : withDefault ( StringControl , trans ( "meeting.serverurl" ) ) ,
240
231
participants : stateComp < JSONValue > ( [ ] ) ,
241
232
usersScreenShared : stateComp < JSONValue > ( [ ] ) ,
242
233
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" ) ) ,
245
238
messages : stateComp < JSONValue > ( [ ] ) ,
246
239
} ;
247
240
let MTComp = ( function ( ) {
@@ -272,8 +265,7 @@ let MTComp = (function () {
272
265
} ) ;
273
266
const [ rtmMessages , setRtmMessages ] = useState < any > ( [ ] ) ;
274
267
const [ localUserSpeaking , setLocalUserSpeaking ] = useState < any > ( false ) ;
275
- const [ localUserVideo , setLocalUserVideo ] =
276
- useState < IAgoraRTCRemoteUser > ( ) ;
268
+ const [ localUserVideo , setLocalUserVideo ] = useState < IAgoraRTCRemoteUser > ( ) ;
277
269
const [ userJoined , setUserJoined ] = useState < IAgoraRTCRemoteUser > ( ) ;
278
270
const [ userLeft , setUserLeft ] = useState < IAgoraRTCRemoteUser > ( ) ;
279
271
@@ -503,17 +495,6 @@ let MTComp = (function () {
503
495
. setPropertyViewFn ( ( children ) => (
504
496
< >
505
497
< 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
-
517
498
{ children . placement . propertyView ( {
518
499
label : trans ( "drawer.placement" ) ,
519
500
radioButton : true ,
@@ -539,6 +520,23 @@ let MTComp = (function () {
539
520
label : trans ( "prop.showMask" ) ,
540
521
} ) }
541
522
</ 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 >
542
540
< Section name = { sectionNames . interaction } >
543
541
{ children . onEvent . getPropertyView ( ) }
544
542
</ Section >
@@ -635,7 +633,7 @@ MTComp = withMethodExposing(MTComp, [
635
633
} ,
636
634
execute : async ( comp , values ) => {
637
635
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 ;
639
637
comp . children . localUser . change ( {
640
638
user : userId + "" ,
641
639
audiostatus : false ,
@@ -658,12 +656,9 @@ MTComp = withMethodExposing(MTComp, [
658
656
comp . children . videoControl . change ( true ) ;
659
657
await publishVideo (
660
658
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
667
662
) ;
668
663
comp . children . meetingActive . change ( true ) ;
669
664
} ,
@@ -677,9 +672,9 @@ MTComp = withMethodExposing(MTComp, [
677
672
execute : async ( comp , values ) => {
678
673
if ( ! comp . children . meetingActive . getView ( ) . value ) return ;
679
674
let otherData =
680
- values != undefined && values [ 1 ] !== undefined ? values [ 1 ] : "" ;
675
+ values !== undefined && values [ 1 ] !== undefined ? values [ 1 ] : "" ;
681
676
let toUsers : any =
682
- values != undefined && values [ 0 ] !== undefined ? values [ 0 ] : "" ;
677
+ values !== undefined && values [ 0 ] !== undefined ? values [ 0 ] : "" ;
683
678
684
679
let message : any = {
685
680
time : Date . now ( ) ,
@@ -711,7 +706,7 @@ MTComp = withMethodExposing(MTComp, [
711
706
{
712
707
method : {
713
708
name : "setUserName" ,
714
- description : trans ( "meeting.meetingName " ) ,
709
+ description : trans ( "meeting.userName " ) ,
715
710
params : [ ] ,
716
711
} ,
717
712
execute : async ( comp , values ) => {
@@ -720,6 +715,28 @@ MTComp = withMethodExposing(MTComp, [
720
715
comp . children . localUser . change ( { ...userLocal , userName : userName } ) ;
721
716
} ,
722
717
} ,
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
+ } ,
723
740
{
724
741
method : {
725
742
name : "endMeeting" ,
@@ -758,7 +775,10 @@ export const VideoMeetingControllerComp = withExposingConfigs(MTComp, [
758
775
new NameConfig ( "appId" , trans ( "meeting.appid" ) ) ,
759
776
new NameConfig ( "localUser" , trans ( "meeting.host" ) ) ,
760
777
new NameConfig ( "participants" , trans ( "meeting.participants" ) ) ,
761
- new NameConfig ( "meetingActive" , trans ( "meeting.meetingName " ) ) ,
778
+ new NameConfig ( "meetingActive" , trans ( "meeting.meetingActive " ) ) ,
762
779
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" ) ) ,
764
784
] ) ;
0 commit comments