public constructor()

in src/SignalingClient.ts [74:105]


    public constructor(config: SignalingClientConfig) {
        super();

        // Validate config
        validateValueNonNil(config, 'SignalingClientConfig');
        validateValueNonNil(config.role, 'role');
        if (config.role === Role.VIEWER) {
            validateValueNonNil(config.clientId, 'clientId');
        } else {
            validateValueNil(config.clientId, 'clientId');
        }
        validateValueNonNil(config.channelARN, 'channelARN');
        validateValueNonNil(config.region, 'region');
        validateValueNonNil(config.channelEndpoint, 'channelEndpoint');

        this.config = { ...config }; // Copy config to new object for immutability.

        if (config.requestSigner) {
            this.requestSigner = config.requestSigner;
        } else {
            validateValueNonNil(config.credentials, 'credentials');
            this.requestSigner = new SigV4RequestSigner(config.region, config.credentials);
        }

        this.dateProvider = new DateProvider(config.systemClockOffset || 0);

        // Bind event handlers
        this.onOpen = this.onOpen.bind(this);
        this.onMessage = this.onMessage.bind(this);
        this.onError = this.onError.bind(this);
        this.onClose = this.onClose.bind(this);
    }