Skip to content

Instantly share code, notes, and snippets.

@aobeta
Created February 18, 2020 03:25
Show Gist options
  • Save aobeta/8a466ba23b84130c05e519806e5185e1 to your computer and use it in GitHub Desktop.
Save aobeta/8a466ba23b84130c05e519806e5185e1 to your computer and use it in GitHub Desktop.
subscribe() function in mediasoup sample
async function subscribe() {
const data = await socket.request('createConsumerTransport', {
forceTcp: false,
});
if (data.error) {
console.error(data.error);
return;
}
const transport = device.createRecvTransport(data);
const onNewStream = consume(transport);
transport.on('connect', ({ dtlsParameters }, callback, errback) => {
socket
.request('connectConsumerTransport', {
transportId: transport.id,
dtlsParameters,
})
.then(callback)
.catch(errback);
});
transport.on('connectionstatechange', async state => {
switch (state) {
case 'connecting':
$txtSubscription.innerHTML = 'subscribing...';
$fsSubscribe.disabled = true;
break;
case 'connected':
const stream = await onNewStream;
document.querySelector('#remote_video').srcObject = stream;
$txtSubscription.innerHTML = 'subscribed';
$fsSubscribe.disabled = true;
break;
case 'failed':
transport.close();
$txtSubscription.innerHTML = 'failed';
$fsSubscribe.disabled = false;
break;
default:
break;
}
});
await onNewStream;
socket.request('resume');
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment