private WebSocketClient(IWebSocketOptions options) { _connected = new AsyncEvent(EventErrorHandler, "WS_CONNECT"); _disconnected = new AsyncEvent <WebSocketCloseEventArgs>(EventErrorHandler, "WS_DISCONNECT"); _messageReceived = new AsyncEvent <WebSocketMessageEventArgs>(EventErrorHandler, "WS_MESSAGE"); _errored = new AsyncEvent <WebSocketErrorEventArgs>(EventErrorHandler, "WS_ERROR"); Options = options; ClientWebSocket = new ClientWebSocket { Options = { KeepAliveInterval = TimeSpan.Zero } }; if (options.WebProxy != null) { ClientWebSocket.Options.Proxy = options.WebProxy; } if (options.Headers.Any()) { foreach (var(k, v) in options.Headers) { ClientWebSocket.Options.SetRequestHeader(k, v); } } SocketTokenSource = null; SocketToken = CancellationToken.None; ReceiverTokenSource = null; ReceiverToken = CancellationToken.None; Locker = new SemaphoreSlim(1); }
public ProxyHelper(IWebSocketOptions options) { if (options == null) { throw new ArgumentNullException("options", "Parameter cannot be null"); } if (options.UseDefaultProxy) { return; } IsBypassed = false; ProxyAddress = options.ProxyAddress; UserName = options.UserName; Password = options.Password; }
/// <summary> /// Creates a new instance of WebSocketClient. /// </summary> /// <param name="uri">The Uri this WebSocketClient should connect to.</param> /// <param name="options">Options of this WebSocketClient.</param> public WebSocketClient(Uri uri, IWebSocketOptions options = null) { Uri = uri; SendAction = new ActionBlock <WebSocketMessage>(_send); ReadThread = new Thread(_read); if (options == null) { return; } if (options.Headers != null) { foreach (var(item1, item2) in options.Headers) { ClientWebSocket.Options.SetRequestHeader(item1, item2); } } if (options.Proxy != null) { ClientWebSocket.Options.Proxy = options.Proxy; } }
public static WebSocketClient CreateNew(IWebSocketOptions options) { return(new WebSocketClient(options)); }