Не приходят respons-ы gRPC-клиенту на C#
Возникли трудности при создании gRPC-клиента на C#. Я работаю с TINKOFF INVEST API, который работает по интерфейсу gRPC. Код клиента представлен ниже.
static async Task Main(string[] args)
{
var metadata = new Metadata
{
{ "Authorization", "Bearer {token}"}
};
using var channel = GrpcChannel.ForAddress("https://invest-public-api.tinkoff.ru:443");
var client = new MarketDataStreamService.MarketDataStreamServiceClient(channel);
using var stream = client.MarketDataStream(metadata);
await stream.RequestStream.WriteAsync(
new MarketDataRequest
{
SubscribeCandlesRequest = new SubscribeCandlesRequest()
{
SubscriptionAction = SubscriptionAction.Subscribe,
Instruments =
{
new CandleInstrument()
{
Figi = "FUTNL0422000",
Interval = SubscriptionInterval.OneMinute
//Depth = 20
}
}
}
});
while (await stream.ResponseStream.MoveNext())
{
//В этом цикле приходит единственный респонс, дальше бесконечное ожидание
Console.WriteLine(stream.ResponseStream.Current);
}
}
Я отправляю серверу реквест с запросом подписки на свечи. Прилетает единственный респонс:
{ "subscribeCandlesResponse": { "trackingId": "6225e3c561306a882d46678aa1a67bc8", "candlesSubscriptions": [ { "figi": "FUTNL0422000", "interval": "SUBSCRIPTION_INTERVAL_ONE_MINUTE", "subscriptionStatus": "SUBSCRIPTION_STATUS_SUCCESS" } ] } }
об успешной подписке, далее никаких сообщений не приходит. Подскажите, что не так :(
Ответы (1 шт):
Автор решения: Nightfire
→ Ссылка
Да, запрос правильный. Респонсы не приходили, т.к. биржа была приостановлена.