using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.SignalR; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using SocketsSample.Hubs; using SocketsSample.Protobuf; namespace SocketsSample { public class Startup { // This method gets called by the runtime. Use this method to add services to the container. // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=398940 public void ConfigureServices(IServiceCollection services) { services.AddRouting(); services.AddSingleton(); services.AddSingleton(); services.AddSignalR() .AddSignalROptions(options => { options.RegisterInvocationAdapter("protobuf"); options.RegisterInvocationAdapter("line"); }); // .AddRedis(); services.AddSingleton(); services.AddSingleton(); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { loggerFactory.AddConsole(LogLevel.Debug); app.UseFileServer(); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseSignalR(routes => { routes.MapHub("/hubs"); }); app.UseSockets(routes => { routes.MapSocketEndpoint("/chat"); routes.MapSocketEndpoint>("/jsonrpc"); }); } } }