/// <summary> /// Initializes static members of the <see cref="Successor"/> class. /// </summary> static Successor() { Handlers = new List <BaseHandler>() { // Сортировать желательно по частоте применимости new DialogHandler(), new ChatHandler(), new AuthHandler(), }; InvalidHandler = new InvalidHandler(); }
/// <summary> /// The handle. /// </summary> /// <param name="socket"> /// The socket. /// </param> /// <param name="webSocketMessage"> /// The message type. /// </param> /// <param name="server"> /// The server. /// </param> public static void Handle(IWebSocketConnection socket, string webSocketMessage, IServer server) { var messageType = Newtonsoft.Json.JsonConvert .DeserializeObject <WebSocketMessage <Payloads.BaseMessage> >(webSocketMessage).Type; foreach (var handler in Handlers) { if (handler.CanHandle(socket, messageType, server)) { handler.Handle(socket, webSocketMessage, server); return; } } InvalidHandler.Handle(socket, webSocketMessage, server); }