58 lines
1.4 KiB
JavaScript
58 lines
1.4 KiB
JavaScript
// FIXME: change to '../API' when we update to webpack2. If we do this now all
|
|
// files from API modules will be included in external_api.js.
|
|
import { API_ID } from '../API/constants';
|
|
import { getJitsiMeetGlobalNS } from '../../react/features/base/util';
|
|
|
|
import PostMessageTransportBackend from './PostMessageTransportBackend';
|
|
import Transport from './Transport';
|
|
|
|
export {
|
|
PostMessageTransportBackend,
|
|
Transport
|
|
};
|
|
|
|
/**
|
|
* Option for the default low level transport.
|
|
*
|
|
* @type {Object}
|
|
*/
|
|
const postisOptions = {};
|
|
|
|
if (typeof API_ID === 'number') {
|
|
postisOptions.scope = `jitsi_meet_external_api_${API_ID}`;
|
|
}
|
|
|
|
/**
|
|
* The instance of Transport class that will be used by Jitsi Meet.
|
|
*
|
|
* @type {Transport}
|
|
*/
|
|
let transport;
|
|
|
|
/**
|
|
* Returns the instance of Transport class that will be used by Jitsi Meet.
|
|
*
|
|
* @returns {Transport}
|
|
*/
|
|
export function getJitsiMeetTransport() {
|
|
if (!transport) {
|
|
transport = new Transport({
|
|
backend: new PostMessageTransportBackend({
|
|
enableLegacyFormat: true,
|
|
postisOptions
|
|
})
|
|
});
|
|
}
|
|
|
|
return transport;
|
|
}
|
|
|
|
/**
|
|
* Sets the transport to passed transport.
|
|
*
|
|
* @param {Object} externalTransportBackend - The new transport.
|
|
* @returns {void}
|
|
*/
|
|
getJitsiMeetGlobalNS().setExternalTransportBackend = externalTransportBackend =>
|
|
transport.setBackend(externalTransportBackend);
|