/// <summary> /// Handles the request. /// </summary> /// <param name="sender">The sender.</param> /// <param name="signal">The signal.</param> /// <exception cref="InvalidExtensionException"></exception> private void HandleDequeuedRequest(object sender, ISignal signal) { IWebSocketConnection[] connections = _connectionManager.GetConnectionsByClientIdentifier(signal.Sender); if (!connections.Any()) { return; } IExtension extension = GetExtension(signal); if (extension == null) { throw new InvalidExtensionException($"Attempted to route an to an invalid extension. Route: {signal.Route}"); } _logger.Debug(signal.Format("Request")); ISignal response = extension.ExecuteAction(signal.Action, signal); if (response == null) { return; } _routerExchangeGenerator.Publish(_responseExchangeId, response); }