public Request(InterReactClientConnector builder, IRxSocketClient rxSocket) { Builder = builder; Limiter = new RingLimiter(Builder.MaxRequestsPerSecond); ArgumentNullException.ThrowIfNull(rxSocket); RxSocket = rxSocket; }
public async Task T03_Connection_Refused() { var task = new InterReactClientConnector().WithLogger(Logger).WithPorts(999).ConnectAsync(); var ex = await Assert.ThrowsAsync <ArgumentException>(async() => await task); Write(ex.ToString()); }
public async Task T02_Timeout() { var cts = new CancellationTokenSource(TimeSpan.FromMilliseconds(1000)); var task = new InterReactClientConnector().WithLogger(Logger).ConnectAsync(cts.Token); var ex = await Assert.ThrowsAsync <OperationCanceledException>(async() => await task); Write(ex.ToString()); }
public async Task T01_Cancel() { var ct = new CancellationToken(true); var task = new InterReactClientConnector().WithLogger(Logger).ConnectAsync(ct); var ex = await Assert.ThrowsAnyAsync <OperationCanceledException>(async() => await task); Write(ex.ToString()); }
internal ResponseReader(InterReactClientConnector builder) { Builder = builder; Parser = new ResponseParser(builder.Logger); }
internal static IObservable <object> ToMessages(this IObservable <string[]> source, InterReactClientConnector builder) { ResponseComposer composer = new(builder); return(Observable.Create <object>(observer => { return source.Subscribe( strings => { object message = composer.Compose(strings); observer.OnNext(message); if (message is PriceTick priceTick && builder.FollowPriceTickWithSizeTick) { TickType type = GetSizeTickType(priceTick.TickType); if (type != TickType.Undefined) { observer.OnNext(new SizeTick(priceTick.RequestId, type, priceTick.Size)); } } }, e => observer.OnError(e), observer.OnCompleted); })); }