AngleSharp.Io.Dom.WebSocket.WebSocket C# (CSharp) Method

WebSocket() private method

private WebSocket ( IWindow window, String url ) : AngleSharp.Attributes
window IWindow
url String
return AngleSharp.Attributes
        public WebSocket(IWindow window, String url, params String[] protocols)
        {
            _url = new Url(url);
            _state = WebSocketReadyState.Connecting;
            _cts = new CancellationTokenSource();
            _window = window;

            if (_url.IsInvalid || _url.IsRelative)
            {
                throw new DomException(DomError.Syntax);
            }

            var invalid = protocols.Length - protocols.Distinct().Where(IsValid).Count();

            if (invalid > 0)
            {
                throw new DomException(DomError.Syntax);
            }

            _ws = new ClientWebSocket();

            foreach (var protocol in protocols)
            {
                _ws.Options.AddSubProtocol(protocol);
            }

            _ws.Options.KeepAliveInterval = TimeSpan.FromSeconds(20);
            ConnectAsync(url).Forget();
            _window.Unloaded += OnUnload;
        }