in src/dotnet/AspireWorker/Sessions/SessionEndpoints.cs [116:150]
private static async Task Notify(
HttpContext context,
[FromQuery(Name = "api-version")] string apiVersion,
[FromHeader(Name = "Microsoft-Developer-DCP-Instance-ID")]
string dcpInstanceId,
IAspireHostService hostService,
ILogger<SessionEndpointsLogger> logger)
{
logger.NotifyRequestReceived();
if (!IsProtocolVersionSupported(apiVersion))
{
context.Response.StatusCode = StatusCodes.Status400BadRequest;
return;
}
var aspireHostId = GetAspireHostId(dcpInstanceId);
var sessionEventReader = hostService.GetSessionEventReader(aspireHostId);
if (sessionEventReader is null)
{
context.Response.StatusCode = StatusCodes.Status400BadRequest;
return;
}
if (context.WebSockets.IsWebSocketRequest)
{
using var ws = await context.WebSockets.AcceptWebSocketAsync();
await Receive(ws, sessionEventReader);
}
else
{
context.Response.StatusCode = StatusCodes.Status400BadRequest;
}
}