public override void WriteMessageBegin(TMessage message) { WriteJSONArrayStart(); WriteJSONInteger(VERSION); byte[] b = utf8Encoding.GetBytes(message.Name); WriteJSONString(b); WriteJSONInteger((long)message.Type); WriteString(message.MsgID); WriteI16(message.LiveLife); WriteString(message.Sender); WriteString(message.SenderQueueName); WriteString(message.Receiver); WriteString(message.ReceiverQueueName); }
public override TMessage ReadMessageBegin() { //初始化消息对象 TMessage message = new TMessage(); //读取第一部分 version strictRead_ == TRUE 整个读取的过程和写入时相反 int size = ReadI32(); if (size < 0) { uint version = (uint)size & VERSION_MASK; if (version != VERSION_1) { throw new TSerializerException(TSerializerException.BAD_VERSION, "Bad version in ReadMessageBegin: " + version); } message.Type = (TMessageType)(size & 0x000000ff); //读取消息的名称 message.Name = ReadString(); //读取消息的msgID message.MsgID = ReadString(); } else { if (strictRead_) { throw new TSerializerException(TSerializerException.BAD_VERSION, "Missing version in readMessageBegin, old client?"); } message.Name = ReadStringBody(size); message.Type = (TMessageType)ReadByte(); message.MsgID = ReadString(); } //读取超时时间 message.LiveLife = ReadI16(); //读取发送者 message.Sender = ReadString(); //读取发送队列名称 message.SenderQueueName = ReadString(); //读取接受者 message.Receiver = ReadString(); //读取接收者队列名称 message.ReceiverQueueName = ReadString(); return(message); }
public override void WriteMessageBegin(TMessage message) { if (strictWrite_) { uint version = VERSION_1 | (uint)(message.Type); WriteI32((int)version); WriteString(message.Name); WriteString(message.MsgID); } else { WriteString(message.Name); WriteByte((byte)message.Type); WriteString(message.MsgID); } WriteI16(message.LiveLife); WriteString(message.Sender); WriteString(message.SenderQueueName); WriteString(message.Receiver); WriteString(message.ReceiverQueueName); }
public override TMessage ReadMessageBegin() { TMessage message = new TMessage(); ReadJSONArrayStart(); if (ReadJSONInteger() != VERSION) { throw new TSerializerException(TSerializerException.BAD_VERSION, "Message contained bad version."); } message.Name = utf8Encoding.GetString(ReadJSONString(false)); message.Type = (TMessageType)ReadJSONInteger(); message.MsgID = ReadString(); message.LiveLife = ReadI16(); message.Sender = ReadString(); message.SenderQueueName = ReadString(); message.Receiver = ReadString(); message.ReceiverQueueName = ReadString(); return(message); }
public abstract void WriteMessageBegin(TMessage message);