куда это надо было поместить, поэтому создал HostedService. Подписку положил в StartAsync, и чтобы приложение вечно слушало вебсокет, внизу написал Task.Delay(-1).
Норм чи не? Как это по-другому записать?
public async Task StartAsync(CancellationToken cancellationToken)
{
var web3 = new Web3($"https://rinkeby.infura.io/v3/{_infuraOptions.ProjectId}");
var transferEventHandler = web3.Eth.GetEvent<TransferEvent>(_contractOptions.ContractAddress);
var filter = transferEventHandler.CreateFilterInput();
using (var client =
new StreamingWebSocketClient($"wss://rinkeby.infura.io/ws/v3/{_infuraOptions.ProjectId}"))
{
_subscription = new EthLogsObservableSubscription(client);
_subscription.GetSubscriptionDataResponsesAsObservable().Subscribe(log =>
{
// handler
}
}
await client.StartAsync();
_subscription.GetSubscribeResponseAsObservable().Subscribe(id =>
{
_subscriptionId = id;
Console.WriteLine($"Subscribed with id: {id}");
});
await _subscription.SubscribeAsync(filter);
await Task.Delay(-1); // norm?
}
не норм, приложение бесконечно останавливается
Обсуждают сегодня