private void PerformConnect(string url) { if (_websocket != null) { DisposeWebSocket(); } _webSocketTokenSource = new CancellationTokenSource(); _webSocketTokenSource.Token.Register(WebSocketTokenSourceCanceled); CancellationTokenSource.CreateLinkedTokenSource(_webSocketTokenSource.Token, _disconnectToken); // SignalR uses https, websocket4net uses wss url = url.Replace("http://", "ws://").Replace("https://", "wss://"); IDictionary <string, string> cookies = new Dictionary <string, string>(); if (_connection.CookieContainer != null) { var container = _connection.CookieContainer.GetCookies(new Uri(_connection.Url)); foreach (Cookie cookie in container) { cookies.Add(cookie.Name, cookie.Value); } } // Add the header from the connection to the socket connection var headers = _connection.Headers.ToList(); // _websocket = new WebsocketNative(url, _connection.CookieContainer.GetCookieHeader(new Uri(url)), BittrexSocketClient.GetUserAgentString()); #if !NETSTANDARD _websocket = new WebsocketSharp(url, _connection.CookieContainer.GetCookieHeader(new Uri(url)), BittrexSocketClient.GetUserAgentString()); #else _websocket = new Websocket4Net(url, cookies, _connection.Headers); #endif _websocket.OnError += WebSocketOnError; _websocket.OnOpen += WebSocketOnOpened; _websocket.OnClose += WebSocketOnClosed; _websocket.OnMessage += WebSocketOnMessageReceived; _websocket.setProxy(_connection.Proxy); _websocket.Open(); }