Exemplo n.º 1
0
        protected bool ProcessGetForQueue(MQProtocolSession session, MQDataInfo mQDataInfo)
        {
            try
            {
                string data = mQDataInfo.Body.DecodeToString();

                mqServer.Logger.Info($"客户端:【{session.RemoteEndPoint}】消息类型:【{mQDataInfo.Type}】{CommanCode.GetForQueue} :【{mQDataInfo}】消息内容:【{data}】");


                string msgs = ""; //Newtonsoft.Json.JsonConvert.SerializeObject(mqServer.TopicMessageQueueDict);
                var    msg  = MQTools.GetSendMessage((ushort)CommanCode.GetForQueue, msgs, 0);

                var r = session.TrySend(msg);

                mqServer.Logger.Info($"客户端:【{session.RemoteEndPoint}】请求队列 【{msgs}】【确认】消息结果:【{r}】");

                return(true);
            }
            catch (Exception e)
            {
                mqServer.Logger.Error(mQDataInfo, new Exception("处理队列确认消息失败", e));

                session.Close(CSuperSocket.SocketBase.CloseReason.InternalError);

                return(false);
            }
        }
Exemplo n.º 2
0
        protected bool ProcessPullMessage(MQProtocolSession session, MQDataInfo mQDataInfo)
        {
            try
            {
                string data = mQDataInfo.Body.DecodeToString();

                mqServer.Logger.Info($"客户端:【{session.RemoteEndPoint}】消息类型:【{mQDataInfo.Type}】{CommanCode.PullMessage} :【{mQDataInfo}】消息内容:【{data}】");
                MQDataInfo msg;
                if (session.PeekAckMessageQueue(out msg))
                {
                    byte[] buffer;
                    msg.GetSendByte(out buffer);
                    bool r = session.TrySend(buffer, 0, buffer.Length);

                    mqServer.Logger.Info($"客户端:【{session.RemoteEndPoint}】拉取 【{msg}】【确认】消息结果:【{r}】队列:【{session.AckMessageQueueCount}】");
                }

                return(true);
            }
            catch (Exception e)
            {
                mqServer.Logger.Error(mQDataInfo, new Exception("处理队列确认消息失败", e));

                session.Close(CSuperSocket.SocketBase.CloseReason.InternalError);

                return(false);
            }
        }