Esempio n. 1
0
        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"]);
            }
        }
Esempio n. 2
0
        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!");
        }