public IqOptionHttpClient(string username, string password, string host = "iqoption.com") { Client = new RestClient(ApiEndPoint(host)); LoginModel = new LoginModel { Email = username, Password = password }; _logger = IqOptionLoggerFactory.CreateLogger(); }
public IqOptionWebSocketClient(string secureToken, string host = "iqoption.com") { SecureToken = secureToken; _client = new WebSocket($"wss://{host}/echo/websocket"); _client.OnError += (sender, args) => { var a = args; }; _client.Connect(); var scheduler = new EventLoopScheduler(); MessageReceivedObservable = Observable.Using( () => _client, _ => Observable .FromEventPattern <EventHandler <MessageEventArgs>, MessageEventArgs>( handler => _.OnMessage += handler, handler => _.OnMessage -= handler)) .Select(x => x.EventArgs.Data) .SubscribeOn(scheduler) .Publish() .RefCount(); // create logger context _logger = IqOptionLoggerFactory.CreateWebSocketLogger(Profile); _client.OnMessage += (sender, args) => SubscribeIncomingMessage(args.Data); SystemReconnectionTimer.AutoReset = true; SystemReconnectionTimer.Enabled = true; SystemReconnectionTimer.Elapsed += (sender, args) => { _logger.Warning("System try to reconnect"); SendMessageAsync(new SsidWsMessageBase(SecureToken)).ConfigureAwait(false); }; // send secure token to connect to server SendMessageAsync(new SsidWsMessageBase(SecureToken)).ConfigureAwait(false); }
public void Subscribe(Profile type) { _logger = IqOptionLoggerFactory.CreateWebSocketLogger(type); Profile = type; _profileSubject.OnNext(type); }