public static MessageModel getHeartBtMessage() { var msgBody = new HeartBtMessageNode(); var msg = MessageModel.BuildMessage(MessageModel.MSGTYPE_HEARTBEAT, msgBody); return(msg); }
public static MessageModel getLogonMessage() { var msgBody = new LogonMessageNode(); msgBody.senderCompID = ConfigurationManager.AppSettings.Get("sdk_sender"); msgBody.targetCompID = ConfigurationManager.AppSettings.Get("sdk_recver"); msgBody.heartBtInt = 3; msgBody.passwd = ConfigurationManager.AppSettings.Get("sdk_pass"); msgBody.defaultApplVerID = "1.02"; var msg = MessageModel.BuildMessage(MessageModel.MSGTYPE_LOGON, msgBody); return(msg); }
/// <summary> /// 从缓冲区获取一个消息,线程安全 /// </summary> /// <returns></returns> private MessageModel peekMessage() { var msg = new MessageModel(); this.mPeekLock.EnterWriteLock(); try { //消息头 var msgHeadSize = YunLib.DataHelper.StructSize <MessageHeaderNode>(); var msgHeaderData = this.mNetClient.recvBuffer(msgHeadSize); var msgHeader = YunLib.DataHelper.BytesToStruct <MessageHeaderNode>(msgHeaderData); //消息体 UInt32 bodyLen = msgHeader.bodyLength; var msgBodyData = this.mNetClient.recvBuffer((int)bodyLen); //消息尾 var msgTailerSize = YunLib.DataHelper.StructSize <MessageTailerNode>(); var msgTailerData = this.mNetClient.recvBuffer(msgTailerSize); //消息二进制数据 var msgData = new byte[msgHeaderData.Length + msgBodyData.Length + msgTailerData.Length]; msgHeaderData.CopyTo(msgData, 0); msgBodyData.CopyTo(msgData, msgHeaderData.Length); msgTailerData.CopyTo(msgData, msgHeaderData.Length + msgBodyData.Length); msg = MessageModel.BuildMessage(msgData); } catch (Exception ex) { YunLib.LogWriter.Log(ex.ToString()); } this.mPeekLock.ExitWriteLock(); return(msg); }