Beispiel #1
0
        private Action <IServerScoketEventListener, IServerSocket> GetAction(ServerSocketStateChangedState serverSocketStateChangedState)
        {
            switch (serverSocketStateChangedState)
            {
            case ServerSocketStateChangedState.Shutdown:
                return((listener, server) => listener.OnServerShutDown(server));

            case ServerSocketStateChangedState.Started:
                return((listener, server) => listener.OnServerStarted(server));

            default:
                break;
            }
            return(null);
        }
Beispiel #2
0
        private void ServerStateChanged(ServerSocketStateChangedState serverSocketStateChangedState)
        {
            var excuteAction = GetAction(serverSocketStateChangedState);

            foreach (var listener in _serverScoketEventListeners)
            {
                try
                {
                    excuteAction?.Invoke(listener, this);
                }
                catch (Exception ex)
                {
                    Log <ServerSocket> .Error(ex, string.Format("Notify socket server {0} has exception, name: {1}, listenerType: {2}", serverSocketStateChangedState, ToString(), Name, listener.GetType().Name));
                }
            }
        }