public void Dispose() { if (Context != null) { Context.Dispose(); Context = null; } }
bool Router(DebugHttpServer.Context context) { Debug.LogFormat("{0} {1}", context.Method, context.Uri); foreach (var v in context.Headers) { //Debug.LogFormat("{0}: {1}", v.Key, v.Value); } var response = context.Response; response.AutoFlush = true; if (context.Method == DebugHttpServer.Method.GET && context.Uri == "/api/debugui-event") { if (debugUiManager == null) { context.WriteStatus(DebugHttpServer.StatusCode.ServiceUnavailable); context.WriteDate(); response.Write("\r\n"); return(true); } context.WriteStatus(DebugHttpServer.StatusCode.OK); context.WriteDate(); response.Write("Content-Type: text/event-stream\r\n\r\n"); response.Write("event: start\r\n"); response.Write("data: "); debugUiManager.ToJson(response); response.Write("\r\n\r\n"); return(true); } else if (context.Method == DebugHttpServer.Method.POST && context.Uri == "/api/debugui-event") { try { lock (requests) { requests.Enqueue(new SynchronousRequest() { Context = context, Payload = context.Body.ReadLine() }); } return(false); } catch (Exception) { context.WriteStatus(DebugHttpServer.StatusCode.BadRequest); context.WriteDate(); response.Write("\r\n"); return(true); } } else { if (context.Method != DebugHttpServer.Method.GET) { context.WriteStatus(DebugHttpServer.StatusCode.MethodNotAllowed); context.WriteDate(); response.Write("\r\nContent-Length: 0\r\n\r\n"); return(true); } context.WriteStatus(DebugHttpServer.StatusCode.OK); context.WriteDate(); response.Write("Content-Type: text/html; charset=UTF-8\r\n\r\n"); response.Write(html); return(true); } }