地址:https://github.com/davidfowl/MultiProtocolAspNetCore.gitgit
在一個Kestrel服務上能夠同時處理Tcp,Http,Https等多種協議。github
經過實現 ConnectionHandler 處理接入鏈接,ConnectionContext.Transport 實現System.IO.Piplines 中的接口IDuplexPipe 。api
WebHost.CreateDefaultBuilder 時設置下就行。服務器
.UseKestrel(options => { // TCP 8007 options.ListenLocalhost(8007, builder => { builder.UseConnectionHandler<MyEchoConnectionHandler>(); }); // HTTP 5000 options.ListenLocalhost(5000); // HTTPS 5001 options.ListenLocalhost(5001, builder => { builder.UseHttps(); }); })
Kestrel 的演進目標如今看來是要作一個通用的服務器。ui