public static void UseSocketRoutes(this IApplicationBuilder app, IMonitorsSocket monitorSocket) { app.Use(async(context, next) => { await next(); //if (context.Request.Path == "/ws") //{ // if (context.WebSockets.IsWebSocketRequest) // { // WebSocket webSocket = await context.WebSockets.AcceptWebSocketAsync(); // await monitorSocket.Echo(/*context, */webSocket); // } // else // { // context.Response.StatusCode = 400; // } //} //else //{ // await next(); //} }); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, IMonitorsSocket monitorSocket) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } #region "Swagger" app.UseSwagger(c => { c.RouteTemplate = "api/swagger/{documentName}/swagger.json"; }); app.UseSwaggerUI(c => { c.SwaggerEndpoint("/api/swagger/v1/swagger.json", "Monitoring API v1"); c.RoutePrefix = "api/swagger"; }); #endregion "Swagger" #region "WebSocket" app.UseWebSockets(MonitorsSocketEx.BuildOptions()); app.UseSocketRoutes(monitorSocket); #endregion "WebSocket" #region "HealthCheck" app.UseHealthChecks("/ping", HealthCheckEx.BuildOptions()); #endregion "HealthCheck" app.UseMvc(); }
public MonitorsController(IMonitorsSocket monitorsSocket) { _monitorsSocket = monitorsSocket; }