byte[] ConvertToBytes(ProtocolMessage msg) { var asJson = JsonConvert.SerializeObject(msg); var jsonBytes = Encoding.UTF8.GetBytes(asJson); var header = $"Content-Length: {jsonBytes.Length}\r\n\r\n"; var headerBytes = Encoding.UTF8.GetBytes(header); LogVerbose("(out) [" + asJson + "]"); var data = new byte[headerBytes.Length + jsonBytes.Length]; Buffer.BlockCopy(headerBytes, 0, data, 0, headerBytes.Length); Buffer.BlockCopy(jsonBytes, 0, data, headerBytes.Length, jsonBytes.Length); return(data); }
void Send(ProtocolMessage msg) { msg.seq = _sequenceNumber++; var data = ConvertToBytes(msg); try { _output.Write(data, 0, data.Length); _output.Flush(); } catch { // ignore // Log.Write( "Send error " + e ); } }