public WebSocketPackageHandler(IServiceProvider serviceProvider)
        {
            _serviceProvider = serviceProvider;

            _websocketCommandMiddleware = serviceProvider
                                          .GetService <IWebSocketCommandMiddleware>() as IPackageHandler <WebSocketPackage>;

            _packageHandlerDelegate = serviceProvider.GetService <Func <WebSocketSession, WebSocketPackage, Task> >();
            _subProtocolSelector    = serviceProvider.GetService <ISubProtocolSelector>();
        }
        public WebSocketPackageHandler(IServiceProvider serviceProvider, ILoggerFactory loggerFactory, IOptions <HandshakeOptions> handshakeOptions)
        {
            _serviceProvider = serviceProvider;

            _websocketCommandMiddleware = serviceProvider
                                          .GetService <IWebSocketCommandMiddleware>() as IPackageHandler <WebSocketPackage>;

            _packageHandlerDelegate = serviceProvider.GetService <Func <WebSocketSession, WebSocketPackage, Task> >();
            _subProtocolSelector    = serviceProvider.GetService <ISubProtocolSelector>();
            _logger           = loggerFactory.CreateLogger <WebSocketPackageHandler>();
            _handshakeOptions = handshakeOptions.Value;
        }