/// <summary> /// 接收队列中的消息 /// </summary> protected void QueueReceive() { m_PipeServer.WaitForConnection(); while (m_IsReceived) { if (!m_PipeServer.IsConnected) { Thread.Sleep(50); continue; } ServiceCommand msg = new ServiceCommand(); using (StreamReader sr = new StreamReader(m_PipeServer)) { msg.CommandStringToClass(sr.ReadLine()); } if (msg == null || string.IsNullOrEmpty(msg.Guid)) { continue; } m_ReceiveCommandCaches.AddResult(msg.Guid, msg); if (MessageReceived != null) { // 事件不为为空时 if (MessageReceived != null) { MessageReceived(msg); } } Thread.Sleep(50); } }
/// <summary> /// 状态回调 /// </summary> /// <param name="rs">验证结果</param> private void Received(ServiceCommand rs) { if (rs != null) { m_ReceiveCommandCaches.AddResult(rs.Guid, rs); //m_ReceiveQueue.Enqueue(rs); m_SendCommandCaches.RemoveResult(rs.Guid); } }
/// <summary> /// 接收到的数据 /// </summary> /// <param name="message">0</param> private void CommunicationControl_MessageReceived(ServiceCommand message) { RequestEntity requestEntity = message.Entity as RequestEntity; if (requestEntity == null) { return; } ServiceMap map = Singleton <ConfigManager> .Instance.GetServiceMap(requestEntity.ServiceId); // 请求命令格式错误 if (map == null) { // 生成请求命令格式错误的响应消息 ResponseEntity responseEntity = GenerateRequestCommandError(requestEntity); //放入字典 Singleton <ResultCacheManager <ResponseEntity> > .Instance.AddResult(message.Guid, responseEntity); return; } m_Logger.Debug("调用的服务:" + map.ServiceFullName); message.ServiceName = map.ServiceName; message.ServiceFullName = map.ServiceFullName; message.ServiceDLLName = map.ServiceDLLName; message.Priority = map.Priority; ServiceData data = new ServiceData(); data.Command = message; // 放入请求队列 m_ReceiveCommandCaches.AddResult(message.Guid, message); m_Logger.Debug("请求入队。"); // 请求入队 Singleton <QueueManager> .Instance.Enqueue(data); Thread.Sleep(100); }