Skip to content

Commit 174fc97

Browse files
authored
Merge pull request #23 from ant-media/improveStopFunction
Add mechanism to cleanup local stream and websocket
2 parents d4b0c30 + 69082f4 commit 174fc97

File tree

3 files changed

+222
-124
lines changed

3 files changed

+222
-124
lines changed

example/index.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { AppRegistry } from 'react-native';
2-
//import App from './src/App';
2+
import App from './src/App';
33
//import App from './src/Play';
44
//import App from './src/Peer';
5-
import App from './src/Conference';
5+
//import App from './src/Conference';
66
import { name as appName } from './app.json';
77

88
AppRegistry.registerComponent(appName, () => App);

example/src/App.tsx

+44-18
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ import {useAntMedia, rtc_view} from '@antmedia/react-native-ant-media';
1111

1212
import InCallManager from 'react-native-incall-manager';
1313

14+
var publishStreamId:string;
15+
1416
export 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

Comments
 (0)