Créer une App Moderne — Avalonia UI & .NET
Bibliothèque et contrat utilisés
On utilise ClientWebSocket natif .NET — aucun NuGet externe n'est requis.
public interface IRealtimeClient : IAsyncDisposable
{
Task ConnectAsync(Uri serverUri, CancellationToken ct = default);
IAsyncEnumerable<TodoItem> ListenAsync(CancellationToken ct = default);
}
public sealed class WebSocketRealtimeClient : IRealtimeClient { ... }
Le ViewModel reçoit IRealtimeClient par injection et l'appelle via _socketClient.