public EngineIOPolling(HttpListenerRequest Request) { Origin = EngineIOHttpManager.GetOrigin(Request.Headers); ForceBase64 = int.TryParse(Request.QueryString["b64"]?.Trim() ?? string.Empty, out int Base64) && Base64 > 0; ConnectionTimer = new Timer(1) { AutoReset = true }; ConnectionTimer.Elapsed += (_, __) => { if (PollResponse?.IsDisconnected ?? false) { OnPollRequestClose(new SocketException()); } }; ConnectionTimer.Start(); }
private EngineIOException Verify(NameValueCollection QueryString, NameValueCollection Headers, EngineIOTransportType ExpectedTransportType) { EngineIOException Exception = Exceptions.UNKNOWN_TRANSPORT; if (EngineIOHttpManager.GetTransport(QueryString).Equals(ExpectedTransportType.ToString())) { bool IsPolling = EngineIOHttpManager.IsPolling(QueryString) && Option.Polling; bool IsWebSocket = EngineIOHttpManager.IsWebSocket(QueryString) && Option.WebSocket; if (IsPolling || IsWebSocket) { if (EngineIOHttpManager.IsValidHeader(EngineIOHttpManager.GetOrigin(Headers))) { Exception = null; } else { Exception = Exceptions.BAD_REQUEST; } } } return(Exception); }