/// <summary> /// 发送消息 /// </summary> /// <param name="mq">消息实体内容</param> /// <param name="messageType">消息类型</param> /// <returns></returns> public bool SendMessage(Common.Mode.MQModel mq, Common.MessageType messageType) { try { System.Threading.Interlocked.Increment(ref _instanceNumber); if (messageType == Common.MessageType.Ack) { string str = Newtonsoft.Json.JsonConvert.SerializeObject(mq); AckMessageQueue.Enqueue(Common.MQTools.GetMQDataInfoMessage((byte)Common.CommanCode.SendMessage, str, _instanceNumber, mqType: 1)); Logger.Debug($"发送【确认】消息 编号:【{_instanceNumber}】内容:【{str}】放入消息队列【{AckMessageQueue.Count}】"); //消息队列获取消息 //var msg = AckMessageQueue.Peek(); //byte[] buffer; //msg.GetSendByte(out buffer); //Logger.Info($"发送【确认】消息 内容:【{msg}】当前队列长度:【{AckMessageQueue.Count}】"); //easyClient.Send(buffer); } else { string str = Newtonsoft.Json.JsonConvert.SerializeObject(mq); Logger.Info($"发送【普通】消息 编号:【{_instanceNumber}】内容:【{str}】"); var msg = Common.MQTools.GetSendMessage((byte)Common.CommanCode.SendMessage, str, _instanceNumber, mqType: (byte)messageType); easyClient.Send(msg); } return(true); } catch (Exception e) { System.Threading.Interlocked.Decrement(ref _instanceNumber); Logger.Error(mq, e); return(false); } }
protected Notify(Common.MessageType messageType) : base(messageType) { }
public Command(Common.MessageType messageType) : base(messageType) { }
protected Invoke(Common.MessageType messageType) : base(messageType) { }
protected ByteData(byte[] data, Common.MessageType messageType) : base(messageType) { Data = data; }