public async Task SSESetsContentType() { using (var factory = new ChannelFactory()) { var connection = new Connection(); connection.ConnectionId = Guid.NewGuid().ToString(); var channel = new HttpChannel(factory); connection.Channel = channel; var sse = new ServerSentEvents(connection); var context = new DefaultHttpContext(); channel.Output.CompleteWriter(); await sse.ProcessRequestAsync(context); Assert.Equal("text/event-stream", context.Response.ContentType); Assert.Equal("no-cache", context.Response.Headers["Cache-Control"]); } }
public async Task SSEAddsAppropriateFraming() { using (var factory = new ChannelFactory()) { var connection = new Connection(); connection.ConnectionId = Guid.NewGuid().ToString(); var channel = new HttpChannel(factory); connection.Channel = channel; var sse = new ServerSentEvents(connection); var context = new DefaultHttpContext(); var ms = new MemoryStream(); context.Response.Body = ms; await channel.Output.WriteAsync(Encoding.UTF8.GetBytes("Hello World")); channel.Output.CompleteWriter(); await sse.ProcessRequestAsync(context); var expected = "data: Hello World\n\n"; Assert.Equal(expected, Encoding.UTF8.GetString(ms.ToArray())); } }
private void OnEventSourceClosed(ServerSentEvents.EventSource eventSource) { HTTPManager.Logger.Information("Transport - " + this.Name, "OnEventSourceClosed"); OnEventSourceError(eventSource, "EventSource Closed!"); }