private void Handshake(string TransportName, HttpListenerRequest Request, HttpListenerResponse Response) { void OnError() { EngineIOHttpManager.SendErrorMessage(Request, Response, Exceptions.BAD_REQUEST); } try { if (EngineIOHttpManager.IsPolling(TransportName)) { EngineIOTransport Transport = new EngineIOPolling(Request); Transport.OnRequest(Request, Response); Handshake(EngineIOSocketID.Generate(), Transport); } else { OnError(); } } catch (Exception Exception) { EngineIOLogger.Error(this, Exception); OnError(); } }
private void OnHttpRequest(object sender, HttpRequestEventArgs e) { Verify(e.Request, (Exception) => { if (Exception == null) { string SID = EngineIOHttpManager.GetSID(e.Request.QueryString); if (_Clients.TryGetValue(SID, out EngineIOSocket Client)) { Client.Transport.OnRequest(e.Request, e.Response); } else { Handshake(EngineIOHttpManager.GetTransport(e.Request.QueryString), e.Request, e.Response); } } else { EngineIOHttpManager.SendErrorMessage(e.Request, e.Response, Exception); } }); }