private void Verify(HttpListenerRequest Request, Action <EngineIOException> Callback) { EngineIOException Return = null; bool AllowHttpRequest = false; try { if ((Return = Verify(Request.QueryString, Request.Headers, EngineIOTransportType.polling)) == null) { string SID = EngineIOHttpManager.GetSID(Request.QueryString); bool Contains = _Clients.ContainsKey(SID); if (string.IsNullOrEmpty(SID) || Contains) { if (Contains && !(_Clients[SID].Transport is EngineIOPolling)) { Return = Exceptions.BAD_REQUEST; } else if (EngineIOHttpManager.ParseMethod(Request.HttpMethod) == EngineIOHttpMethod.GET) { if (Option.AllowHttpRequest != null) { AllowHttpRequest = true; Option.AllowHttpRequest(Request, Callback); } } else if (string.IsNullOrEmpty(SID)) { Return = Exceptions.BAD_HANDSHAKE_METHOD; } } else { Return = Exceptions.UNKNOWN_SID; } } } catch (Exception Exception) { EngineIOLogger.Error(this, Return = new EngineIOException("Unknown exception", Exception)); } finally { if (!AllowHttpRequest) { Callback(Return); } } }