地址:https://github.com/davidfowl/MultiProtocolAspNetCore.git
在一個Kestrel服務上可以同時處理Tcp,Http,Https等多種協議。
通過實現 ConnectionHandler 處理接入連接,ConnectionContext.Transport 實現System.IO.Piplines 中的接口IDuplexPipe 。
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 的演進目標現在看來是要做一個通用的服務器。