Exemplo n.º 1
0
 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);
        }
Exemplo n.º 3
0
 public void Subscribe(Profile type)
 {
     _logger = IqOptionLoggerFactory.CreateWebSocketLogger(type);
     Profile = type;
     _profileSubject.OnNext(type);
 }