static void WriteFrameMessage(IByteBufferAllocator allocator, FrameThriftMessage msg, List <object> output) { IByteBuffer buf = null; try { var len = 4 + msg.Content.ReadableBytes; buf = allocator.Buffer(len); buf.WriteInt(msg.Content.ReadableBytes); buf.WriteBytes(msg.Content); output.Add(buf.Copy(0, len)); } finally { buf?.Release(); } }
public FrameThriftMessage WriteMessage() { FrameThriftMessage msg = new FrameThriftMessage(ThriftTransportType.Framed, Unpooled.WrappedBuffer(new byte[2048])); var str = "{\"m\":\"GetInfo\",\"v\":{\"ModelName\":\"InspectionCertificateDetail\",\"SysId\":\"OMS\",\"TemplateGuid\":\"\"},\"lg\":\"zh_cn\",\"tk\":\"adc05daa-8b06-4f8a-8ce7-d2e7aaf69a34\"}"; msg.WriteMessageBegin(new TMessage("Send", TMessageType.Call, 0)); TStruct struc = new TStruct("Send_args"); msg.WriteStructBegin(struc); TField field = new TField(); field.Name = "my_args"; field.Type = TType.String; field.ID = 1; msg.WriteFieldBegin(field); msg.WriteString(str); msg.WriteFieldEnd(); msg.WriteFieldStop(); msg.WriteStructEnd(); msg.WriteMessageEnd(); return(msg); }