using BotSharp.Plugin.OpenAI.Models.Realtime; using System.ClientModel; using System.Net.WebSockets; namespace BotSharp.Plugin.OpenAI.Providers.Realtime.Session; public class AsyncWebsocketDataCollectionResult : AsyncCollectionResult { private readonly WebSocket _webSocket; public AsyncWebsocketDataCollectionResult(WebSocket webSocket) { _webSocket = webSocket; } public override ContinuationToken? GetContinuationToken(ClientResult page) { return null; } public override async IAsyncEnumerable GetRawPagesAsync() { await using var enumerator = new AsyncWebsocketDataResultEnumerator(_webSocket); while (await enumerator.MoveNextAsync().ConfigureAwait(false)) { yield return enumerator.Current; } } protected override async IAsyncEnumerable GetValuesFromPageAsync(ClientResult page) { await Task.CompletedTask; yield return page; } }