public static async Task SendPongRequestAsync(this IFeedManager subscriptionManager, MessageContext <PingMessage> context) { var request = new PongRequest() { Timestamp = context.Message.Timestamp }; await subscriptionManager.SendAsync(context.Next <IWebSocketRequest>(request), CancellationToken.None); }
public static Task SendDataSubscribeRequestAsync( this IFeedManager subscriptionManager, MessageContext <TranslationSubscriptionRequest <TranslationState> > messageContext, CancellationToken cancellationToken ) { var request = new DataSubscribeRequest() { TranslationId = messageContext.Message.Id, LastEventNumber = messageContext.Message.State.LastDataMessageId }; return(subscriptionManager.SendAsync(messageContext.Next <IWebSocketRequest>(request), cancellationToken)); }
public static Task SendDataUnsubscribeRequestAsync( this IFeedManager subscriptionManager, MessageContext <TranslationUnsubscriptionRequest> messageContext, CancellationToken cancellationToken ) { var request = new DataUnsubscribeRequest() { TranslationId = messageContext.Message.Id }; return(subscriptionManager.SendAsync(messageContext.Next <IWebSocketRequest>(request), cancellationToken)); }
public static Task SendMarketSubscribeRequestAsync( this IFeedManager subscriptionManager, MessageContext <TranslationSubscriptionRequest <TranslationState> > messageContext, FeedSubscriberOptions options, CancellationToken cancellationToken ) { var request = new MarketSubscribeRequest() { TranslationId = messageContext.Message.Id, LastEventNumber = messageContext.Message.State.LastMarketMessageId, }; request.Parameters.Margin = options.Margin; return(subscriptionManager.SendAsync(messageContext.Next <IWebSocketRequest>(request), cancellationToken)); }
public static async Task LoginAsync(this IFeedManager subscriptionManager, string userName, string password) { using (var md5 = MD5.Create()) { var enc = Encoding.UTF8; var ts = DateTimeOffset.Now.ToUnixTimeSeconds().ToString(); var passwordHashString = BytesToString(md5.ComputeHash(enc.GetBytes(password))); var auth = BytesToString(md5.ComputeHash(enc.GetBytes(passwordHashString + ts))) + ":" + ts; var request = new LoginRequest() { UserName = userName, AuthKey = auth }; await subscriptionManager.SendAsync(new MessageContext <IWebSocketRequest>(request), CancellationToken.None); } }