private static void WaitForExit(IWebSocketEventSender websocket, IContainerProcess process) { try { var exitCode = process.WaitForExit(); websocket.SendEvent("close", exitCode.ToString()); websocket.Flush(); websocket.Close(System.Net.WebSockets.WebSocketCloseStatus.NormalClosure, "process finished"); } catch (Exception e) { websocket.SendEvent("close", "-1"); websocket.Flush(); websocket.Close(System.Net.WebSockets.WebSocketCloseStatus.InternalServerError, e.Message); } }
private IContainerProcess Run(IWebSocketEventSender websocket, ProcessSpec processSpec) { try { var processIO = new ProcessIO(websocket); var process = container.Run(processSpec, processIO); websocket.SendEvent("pid", process.Id.ToString()); return(process); } catch (Exception e) { websocket.SendEvent("error", e.Message); websocket.Close(System.Net.WebSockets.WebSocketCloseStatus.InternalServerError, e.Message); return(null); } }
private static void WaitForExit(IWebSocketEventSender websocket, IContainerProcess process) { try { var exitCode = process.WaitForExit(); websocket.SendEvent("close", exitCode.ToString()); websocket.Flush(); // websocket.Close(System.Net.WebSockets.WebSocketCloseStatus.NormalClosure, "process finished"); } catch (Exception e) { websocket.SendEvent("close", "-1"); websocket.Flush(); // websocket.Close(System.Net.WebSockets.WebSocketCloseStatus.InternalServerError, e.Message); } }
public WSWriter(string streamName, IWebSocketEventSender ws) { this.streamName = streamName; this.ws = ws; }
public ProcessIO(IWebSocketEventSender ws) { StandardOutput = new WSWriter("stdout", ws); StandardError = new WSWriter("stderr", ws); }
private IContainerProcess Run(IWebSocketEventSender websocket, ProcessSpec processSpec) { try { var processIO = new ProcessIO(websocket); var process = container.Run(processSpec, processIO); websocket.SendEvent("pid", process.Id.ToString()); return process; } catch (Exception e) { websocket.SendEvent("error", e.Message); websocket.Close(System.Net.WebSockets.WebSocketCloseStatus.InternalServerError, e.Message); return null; } }