@@ -11,6 +11,8 @@ import {useAntMedia, rtc_view} from '@antmedia/react-native-ant-media';
1111
1212import InCallManager from 'react-native-incall-manager' ;
1313
14+ var publishStreamId :string ;
15+
1416export default function App ( ) {
1517 var defaultStreamName = 'streamTest1' ;
1618 const webSocketUrl = 'ws://test.antmedia.io:5080/WebRTCAppEE/websocket' ;
@@ -19,7 +21,7 @@ export default function App() {
1921 const streamNameRef = useRef < string > ( defaultStreamName ) ;
2022 const [ localMedia , setLocalMedia ] = useState ( '' ) ;
2123 const [ isPlaying , setIsPlaying ] = useState ( false ) ;
22-
24+ const [ isWaitingWebsocketInit , setIsWaitingWebsocketInit ] = useState ( false ) ;
2325
2426 let localStream : any = useRef ( null ) ;
2527
@@ -50,6 +52,19 @@ export default function App() {
5052 console . log ( 'publish_finished' ) ;
5153 InCallManager . stop ( ) ;
5254 setIsPlaying ( false ) ;
55+ adaptor . closeWebSocket ( ) ;
56+ break ;
57+ case 'local_stream_updated' :
58+ console . log ( 'local_stream_updated' ) ;
59+ verify ( ) ;
60+ break ;
61+ case 'websocket_not_initialized' :
62+ setIsWaitingWebsocketInit ( true ) ;
63+ adaptor . initialiseWebSocket ( ) ;
64+ break ;
65+ case 'websocket_closed' :
66+ console . log ( 'websocket_closed' ) ;
67+ adaptor . stopLocalStream ( ) ;
5368 break ;
5469 default :
5570 console . log ( command ) ;
@@ -69,22 +84,33 @@ export default function App() {
6984 debug : true ,
7085 } ) ;
7186
72- useEffect ( ( ) => {
73- const verify = ( ) => {
74- console . log ( 'in verify' ) ;
75-
76- if ( adaptor . localStream . current && adaptor . localStream . current . toURL ( ) ) {
77- console . log ( 'in verify if adaptor local stream' , adaptor . localStream ) ;
87+ const generateRandomString = ( length : number ) : string => {
88+ const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789' ;
89+ let result = '' ;
90+ const charactersLength = characters . length ;
7891
79- console . log (
80- 'localStream.current.toURL()' ,
81- adaptor . localStream . current . toURL ( ) ,
82- ) ;
83-
84- return setLocalMedia ( adaptor . localStream . current . toURL ( ) ) ;
92+ for ( let i = 0 ; i < length ; i ++ ) {
93+ const randomIndex = Math . floor ( Math . random ( ) * charactersLength ) ;
94+ result += characters . charAt ( randomIndex ) ;
95+ }
96+ return result ;
97+ } ;
98+
99+ const verify = ( ) => {
100+ console . log ( 'in verify' ) ;
101+ if ( adaptor . localStream . current && adaptor . localStream . current . toURL ( ) ) {
102+ console . log ( 'in verify if adaptor local stream' , adaptor . localStream ) ;
103+ if ( isWaitingWebsocketInit ) {
104+ setIsWaitingWebsocketInit ( false ) ;
105+ publishStreamId = generateRandomString ( 12 ) ;
106+ adaptor . publish ( publishStreamId ) ;
85107 }
86- setTimeout ( verify , 5000 ) ;
87- } ;
108+ return setLocalMedia ( adaptor . localStream . current . toURL ( ) ) ;
109+ }
110+ setTimeout ( verify , 5000 ) ;
111+ } ;
112+
113+ useEffect ( ( ) => {
88114 verify ( ) ;
89115 } , [ adaptor . localStream ] ) ;
90116
@@ -98,15 +124,15 @@ export default function App() {
98124 if ( ! adaptor ) {
99125 return ;
100126 }
101-
102- adaptor . publish ( streamNameRef . current ) ;
127+ publishStreamId = generateRandomString ( 12 ) ;
128+ adaptor . publish ( publishStreamId ) ;
103129 } , [ adaptor ] ) ;
104130
105131 const handleStop = useCallback ( ( ) => {
106132 if ( ! adaptor ) {
107133 return ;
108134 }
109- adaptor . stop ( streamNameRef . current ) ;
135+ adaptor . stop ( publishStreamId ) ;
110136 } , [ adaptor ] ) ;
111137
112138 return (
0 commit comments