private async Task Process(MsgOp msg, NatsClient natsClient) { ExchangeCode code = ExchangeCode.UNKNOWN; string payload = msg.GetPayloadAsString(); Notification <Candle> response = JsonConvert.DeserializeObject <Notification <Candle> >(payload[1..]);
public static object FromProtobuf(this MsgOp msgOp, Type objectType) { return(ProtobufEncoding.Default.Decode(msgOp.Payload.Span, objectType)); }
public static T FromProtobuf <T>(this MsgOp msgOp) where T : class => FromProtobuf(msgOp, typeof(T)) as T;
public static T FromJson <T>(this MsgOp msgOp) where T : class => FromJson(msgOp, typeof(T)) as T;
public static object FromJson(this MsgOp msgOp, Type objectType) { return(JsonEncoding.Default.Decode(msgOp.Payload.Span, objectType)); }
private static MsgOp ParseMsgOp(Stream stream, StringBuilder sb) { var segments = new string[3]; var segmentsI = -1; var segment = sb; int payloadSize; char burn; while (true) { var c = stream.ReadChar(); if (c == Cr) { payloadSize = int.Parse(segment.ToString()); burn = stream.ReadChar(); if (burn != Lf) { throw CreateParserException(MsgOp.Name, Lf, burn); } break; } if (!IsDelimMarker(c)) { segment.Append(c); } else { segments[++segmentsI] = segment.ToString(); segment.Clear(); } } var payload = new byte[payloadSize]; var bytesRead = 0; while (bytesRead < payloadSize) { bytesRead += stream.Read(payload, bytesRead, payloadSize - bytesRead); } var msg = new MsgOp( segments[0], segments[1], payload, segments[2]); burn = stream.ReadChar(); if (burn != Cr) { throw CreateParserException(MsgOp.Name, Cr, burn); } burn = stream.ReadChar(); if (burn != Lf) { throw CreateParserException(MsgOp.Name, Lf, burn); } return(msg); }
private async Task Process(MsgOp msg) { string payload = msg.GetPayloadAsString(); Notification <Order> response = JsonConvert.DeserializeObject <Notification <Order> >(payload[1..]);
private async Task Process(MsgOp msg, NatsClient natsClient) { string payload = msg.GetPayloadAsString(); Notification <Trade> response = JsonConvert.DeserializeObject <Notification <Trade> >(payload[1..]);