UNPKG

mediasfu-reactnative-expo

Version:
66 lines 2.65 kB
import { newPipeProducer } from './socketReceiveMethods/newPipeProducer'; import { producerClosed } from './socketReceiveMethods/producerClosed'; /** * Connects to remote IPs and manages socket connections. * * @param {ConnectLocalIpsOptions} options - The options for connecting IPs. * @param {Socket} options.socket - The socket to connect to. * @param {Function} [options.newProducerMethod=newPipeProducer] - The method to handle new pipe producer events. * @param {Function} [options.closedProducerMethod=producerClosed] - The method to handle producer closed events. * @param {ConnectLocalIpsParameters} options.parameters - Additional parameters. * @param {Function} options.parameters.reorderStreams - The function to reorder streams. * @param {Function} options.parameters.getUpdatedAllParams - The function to get updated parameters. * @param {Socket} options.parameters.socket - The socket to connect to. * * @returns {Promise<void>} A promise that resolves when the connection is established. * * @throws Will throw an error if required parameters are missing or if there is an issue connecting to a remote IP. * * @example * ```typescript * const options = { * socket, * newProducerMethod: newPipeProducer, * closedProducerMethod: producerClosed, * parameters: connectLocalIpsParameters, * }; * * connectLocalIps(options) * .then(() => { * console.log('Connected to local IPs'); * }) * .catch(error => { * console.error('Error connecting to local IPs:', error); * }); * ``` */ export const connectLocalIps = async ({ socket, // mediasfu methods newProducerMethod = newPipeProducer, closedProducerMethod = producerClosed, parameters, }) => { try { // Connect to the remote socket using socket.io-client // Handle new pipe producer event socket.on('new-producer', async ({ producerId, islevel }) => { if (newProducerMethod) { await newProducerMethod({ producerId, islevel, nsock: socket, parameters, }); } }); // Handle producer closed event socket.on('producer-closed', async ({ remoteProducerId }) => { if (closedProducerMethod) { await closedProducerMethod({ remoteProducerId, parameters }); } }); await parameters.receiveAllPipedTransports({ nsock: socket, community: true, parameters }); } catch (error) { // Handle the error console.log('ConnectLocalIps error', error); } }; //# sourceMappingURL=connectLocalIps.js.map