我正在尝试在 ASP.NET Core 上启动并运行 WebSocket 服务器。我创建了一个空的 web 项目,dotnet new web将其更改Program.cs为:
public static void Main(string[] args) {
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder => {
webBuilder.UseStartup<Startup>();
})
.Build()
.Run();
}
Run Code Online (Sandbox Code Playgroud)
AndStartup.cs的ConfigureServices方法:
public void ConfigureServices(IServiceCollection services) {
services.AddControllers();
services.AddWebSockets();
}
Run Code Online (Sandbox Code Playgroud)
和Configure方法:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env) {
app.UseWebSockets();
app.UseRouting();
app.UseEndpoints(endpoints => {
endpoints.MapControllers();
endpoints.MapConnectionHandler<WebSocketHandler>("/ws");
});
}
Run Code Online (Sandbox Code Playgroud)
我WebSocketHandler的OnConnectedAsync方法如下:
public override async Task OnConnectedAsync(ConnectionContext connection)
{
var context = connection.GetHttpContext();
var endpoint = …Run Code Online (Sandbox Code Playgroud)