private void SendFailure(SocketChannel channel, Exception ex) { //Logger.WriteDebug("this, Pipeline => MessageFailure"); var pos = ex.Message.IndexOfAny(new[] { '\r', '\n' }); var descr = pos == -1 ? ex.Message : ex.Message.Substring(0, pos); byte[] response = Encoding.UTF8.GetBytes("HTTP/1.1 400 OK\r\n" + "Content-Type: text/html; charset=UTF-8\r\n\r\n" + "<doctype !html><html><head><title></title></head>" + "<body>" + descr + "</body></html>\r\n"); channel.Send(response); channel.Close(); }
private void SendChannel(SocketChannel channel, object message) { //Logger.WriteDebug(this, "Pipeline => SendChannel"); try { Stream sendMessage = _encoder.Prepare(message); if (sendMessage.Length > 0) { SendCompleted(channel.Send(sendMessage)); } } catch (Exception ex) { SendFailure(channel, ex); } }