@mafalda-sfu/remote-mediasoup-client-mock
Version:
Mock of `Remote Mediasoup client`
63 lines (47 loc) • 2.73 kB
Markdown
# Remote Mediasoup client mock
[](https://gist.github.com/Mafalda-bot/27d772a9a3a8a945b34fd9676de40486#file-Remote-Mediasoup-client-mock-json)
[](https://gist.github.com/Mafalda-bot/7238ab5f664c36d1edfa48d218eea9b3#file-Remote-Mediasoup-client-mock-json)
[](https://www.npmjs.com/package/@mafalda-sfu/remote-mediasoup-client-mock)
This project host a class with the same API of the
[Remote Mediasoup client](https://mafalda.io/Remote-Mediasoup-client/). It's
intended to be used for both testing purposes and as a testbed for the migration
of projects currently based on [Mediasoup](https://mediasoup.org/) to use the
`Remote Mediasoup client` instead. Behavior is mostly the same that the one
offered by the `Remote Mediasoup client` instances, being the only two
differences:
1. `Remote Mediasoup client mock` uses a local instance of `Mediasoup` instead
of connecting to an instance of
[Remote Mediasoup server](https://mafalda.io/Remote-Mediasoup-server/)
2. due to that, `Connection` WebSocket events are emulated instead of being real
ones
## Install
```sh
npm install --save-dev @mafalda-sfu/remote-mediasoup-client-mock
```
## API
See [API documentation](https://mafalda.io/Remote-Mediasoup-client-mock/API).
## Usage
If you already have a `Mediasoup` based project, to use
`Remote Mediasoup client mock` on it you'll only need to do two changes in
your project code:
<!--
TODO: add info to replace dependency, updating the package version in the docs
-->
1. Replace the `mediasoup` import for
`@mafalda-sfu/remote-mediasoup-client-mock`:
```diff
- import mediasoup from 'mediasoup'
+ import RemoteMediasoupClientMock from '@mafalda-sfu/remote-mediasoup-client-mock'
```
2. Create the instance of the `RemoteMediasoupClientMock` object, wait for its
`connected` event, and access to the `mediasoup` property:
```diff
+ const remoteMediasoupClientMock = new RemoteMediasoupClientMock
+
+ await once(remoteMediasoupClientMock, 'connected')
+
+ const {mediasoup} = remoteMediasoupClientMock
```
After that, the `mediasoup` variable will have an object that's API compatible
with the [Mediasoup API](https://mediasoup.org/documentation/v3/mediasoup/api/)
provided by the [`Mediasoup` package](https://www.npmjs.com/package/mediasoup).