/// <summary>
        /// Обработчик сообщения от клиента
        /// </summary>
        /// <param name="obj">Состояние клиента</param>
        private void RequestWorker(Object obj)
        {
            ClientState state = obj as ClientState;

            string action = state.CurrentContext.Request.QueryString["action"];

            if (!NotificationManager.Instance.CheckClient(state))
            {
                NotificationManager.Instance.RegisterClient(state);

                state.CompleteRequest();
                return;
            }

            switch (action)
            {
            case "unregister":
                state.CompleteRequest();
                break;

            case "demandNotifications":
                string result = NotificationManager.Instance.GetContent(state);
                state.CurrentContext.Response.Write(result);
                state.CompleteRequest();
                break;

            default:
                Debug.WriteLine("Unexpected action type in NotificationsHandler: {0}", action);
                break;
            }
        }
Пример #2
0
        /// <summary>
        /// Обработчик сообщения от клиента
        /// </summary>
        /// <param name="obj">Состояние клиента</param>
        private void RequestWorker(Object obj)
        {
            ClientState state = obj as ClientState;

            string command =
                state.CurrentContext.Request.QueryString["cmd"];

            if (state.User == null)
            {
                state.CompleteRequest();
                return;
            }
            Longpool.Instance.RegisterClient(state);

            switch (command)
            {
            case "unregister":
                Longpool.Instance.UnregisterClient(state);
                state.CompleteRequest();
                break;

            case "MatchConfirmation":
                MatchConfirmation(state.User, null);
                break;

            case "FindMatch":
                Longpool.Instance.RegisterClient(state);
                NewSearcher(state.User, null);
                //state.CompleteRequest();
                break;

            default:
                break;
            }
        }