AspNetCore.Docs.Samples/fundamentals/streaming
Rick Anderson b2fd1ce0b4
Update streaming Readme /1 (#107)
* Update streaming Readme /1

* Update fundamentals/streaming/README.md
2023-02-03 12:07:44 -10:00
..
AsynchronousWithSystemTextJson Import samples from external repository (#86) 2022-10-13 09:34:38 -10:00
DynamicBinaryStream Import samples from external repository (#86) 2022-10-13 09:34:38 -10:00
SynchronousWithNewtonsoftJson Import samples from external repository (#86) 2022-10-13 09:34:38 -10:00
README.md Update streaming Readme /1 (#107) 2023-02-03 12:07:44 -10:00

README.md

ASP.NET Core streaming sample

This repository contains sample code for the article "Streaming Responses in ASP.NET Core" in the ASP.NET Core documentation.

What

The project contains three implementations of the definition of a basic ASP.NET Core web site that contains endpoints that play a song:

  • AsynchronousWithSystemTextJson
  • SynchronousWithNewtonsoftJson
  • DynamicBinaryStream

These endpoints stream the song indefinitely, repeating until the client disconnects. This provides a demonstration of how to implement streaming endpoints with ASP.NET Core.

Compiling

This project can be compiled in Visual Studio, or with the dotnet command-line tool:

dotnet build

Running

The project can be launched with Visual Studio or with the dotnet command-line tool:

dotnet run

Using

There are three examples that show alternative implementations. With an example server running, you can use a browser window or command-line tools to inspect output from the hosted endpoints. Append the desired endpoint onto the base URI displayed in the console where the server is running.

  • Browser: Browse to the URL. Some browsers may spool up some of the response before they begin displaying it in realtime.
  • PowerShell: There is no built-in function in PowerShell that can display a web response in realtime.
  • Curl: curl URL --no-buffer
    • NB: Windows 10 ships with a native port of curl.exe -- specify the extension if calling from PowerShell, since PowerShell by default aliases curl to Invoke-WebRequest.
  • Wget: wget -qO- URL

AsynchronousWithSystemTextJson

When running, this project presents a web server with a single endpoint.

  • Controller endpoint: /v1/sing

This project hosts itself on port 5100. A sample URL is:

SynchronousWithNewtonsoftJson

When running, this project presents a web server with two endpoints. These endpoints have identical behavior, but one is implemented using an ASP.NET Core Controller and the other using ASP.NET Core Middleware.

  • Controller Endpoint: /v1/sing
  • Middleware Endpoint: /middleware/sing

This project hosts itself on port 5000. Sample URLs are: