public WebSocketService(IHostApplicationLifetime applicationLifetime, WebSocket socket, EventManager eventManager, ILogger <WebSocketService> logger, IServiceProvider serviceProvider, CancellationToken cancellationToken = default) { _eventManager = eventManager; _logger = logger; applicationLifetime.ApplicationStopping.Register(Dispose); _cancellationToken = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken); _socket = socket; _api = ActivatorUtilities.CreateInstance <WebSocketServiceApi>(serviceProvider, _socket); logger.LogInformation(socket is ClientWebSocket ? "已经成功连接上了服务端" : "有新客户端连接了"); }
public WebSocketService(IHostApplicationLifetime applicationLifetime, HttpContext context, EventManager eventManager, ILogger <WebSocketService> logger) { _eventManager = eventManager; _logger = logger; applicationLifetime.ApplicationStopping.Register(Dispose); _cancellationToken = CancellationTokenSource.CreateLinkedTokenSource(context.RequestAborted); var task = context.WebSockets.AcceptWebSocketAsync(); task.Wait(); _socket = task.Result; _api = ActivatorUtilities.CreateInstance <WebSocketServiceApi>(context.RequestServices, _socket); }