public constructor()

in src/common.browser/WebsocketConnection.ts [27:81]


    public constructor(
        uri: string,
        queryParameters: IStringDictionary<string>,
        headers: IStringDictionary<string>,
        messageFormatter: IWebsocketMessageFormatter,
        proxyInfo: ProxyInfo,
        enableCompression: boolean = false,
        connectionId?: string) {

        if (!uri) {
            throw new ArgumentNullError("uri");
        }

        if (!messageFormatter) {
            throw new ArgumentNullError("messageFormatter");
        }

        this.privMessageFormatter = messageFormatter;

        let queryParams = "";
        let i = 0;

        if (queryParameters) {
            for (const paramName in queryParameters) {
                if (paramName) {
                    queryParams += ((i === 0) && (uri.indexOf("?") === -1)) ? "?" : "&";
                    const val = encodeURIComponent(queryParameters[paramName]);
                    queryParams += `${paramName}=${val}`;
                    i++;
                }
            }
        }

        if (headers) {
            for (const headerName in headers) {
                if (headerName) {
                    queryParams += ((i === 0) && (uri.indexOf("?") === -1)) ? "?" : "&";
                    const val = encodeURIComponent(headers[headerName]);
                    queryParams += `${headerName}=${val}`;
                    i++;
                }
            }
        }

        this.privUri = uri + queryParams;
        this.privId = connectionId ? connectionId : createNoDashGuid();

        this.privConnectionMessageAdapter = new WebsocketMessageAdapter(
            this.privUri,
            this.id,
            this.privMessageFormatter,
            proxyInfo,
            headers,
            enableCompression);
    }