public override void Execute(SocketServer server, SocketSession session, SockectRequestMessage requestInfo)
        {
            try
            {
                SubscribeItem subscribeItem;
                if (requestInfo.TryReadFromJsonStream(out subscribeItem))
                {
                    var _MQMServer = (MQMServer)server;
                    _MQMServer.MessageQueueAgent.Subscribe(subscribeItem.PublisherId, subscribeItem);
                    var result = SocketResult <string> .Create(message : "订阅主题成功!");

                    session.SendObjectToJsonStream(RouteCode, result);
                }
            }
            catch (NotAuthenticationException)
            {
                var result = SocketResult <string> .Create(code : "500", message : "未经授权的操作!");

                session.SendObjectToJsonStream(RouteCode, result);
            }
            catch (Exception ex)
            {
                var result = SocketResult <string> .Create(code : "600", message : string.Format("订阅主题过程中发生无法预知错误,{0}!", ex.Message));

                session.SendObjectToJsonStream(RouteCode, result);
            }
        }
示例#2
0
        public override void Execute(SocketServer server, SocketSession session, SockectRequestMessage requestInfo)
        {
            PubishInformaction info = null;

            try
            {
                if (TryReadPubishInformaction(requestInfo, out info))
                {
                    var msgServer = (MessageServer)server;
                    msgServer.MessageAgent.Pubish(info);
                }
                else
                {
                    throw new MessageAgentException("未能正常解析推送数据!");
                }
            }
            catch (Exception ex)
            {
                if (info != null)
                {
                    session.Logger.Error(string.Format("推送失败,请查看推送信息是否完整!异常消息:{0}{1}推送主题:{2}推送内容:{3}", ex.Message, Environment.NewLine, info.Topic, info.Content), ex);
                }
                else
                {
                    session.Logger.Error(string.Format("推送失败,请查看推送信息是否完整!异常消息:{0}{1}推送信息为空!", ex.Message, Environment.NewLine), ex);
                }
            }
        }
示例#3
0
        private bool TryReadPubishInformaction(SockectRequestMessage requestInfo, out PubishInformaction info)
        {
            info = null;
            if (requestInfo.Body.Length < 5)
            {
                return(false);
            }

            var    len = BitConverter.ToInt32(requestInfo.Body, 0);
            string topic;

            if (requestInfo.TryReadFromText(requestInfo.Body, 4, len, out topic))
            {
                string content;
                if (requestInfo.TryReadFromText(requestInfo.Body, 4 + len, requestInfo.Body.Length - 4 - len, out content))
                {
                    info = new PubishInformaction()
                    {
                        Topic   = topic,
                        Content = content
                    };
                    return(true);
                }
            }
            return(false);
        }
示例#4
0
        public override void Execute(SocketServer server, SocketSession session, SockectRequestMessage requestInfo)
        {
            try
            {
                PublisherInformaction publisher;
                if (requestInfo.TryReadFromJsonStream(out publisher))
                {
                    var _MQMServer = (MQMServer)server;
                    if (_MQMServer.MessageQueueAgent.Authentication(new ClientIndetity()
                    {
                        IsWebSite = publisher.IsWebSite, PublisherId = publisher.PublisherId, SessionId = session.SessionID, WebSiteHost = publisher.WebSiteHost
                    }, publisher.MQMToken))
                    {
                        var result = SocketResult <string> .Create(message : "欢迎登录消息中间件!");

                        session.SendObjectToJsonStream(RouteCode, result);
                    }
                }
            }
            catch (NotAuthenticationException)
            {
                var result = SocketResult <string> .Create(code : "501", message : "授权登陆失败!");

                session.SendObjectToJsonStream(RouteCode, result);
            }
            catch (Exception ex)
            {
                var result = SocketResult <string> .Create(code : "600", message : string.Format("授权登陆过程中发生无法预知错误,{0}!", ex.Message));

                session.SendObjectToJsonStream(RouteCode, result);
            }
        }
 public override void Execute(SocketServer server, SocketSession session, SockectRequestMessage requestInfo)
 {
     try
     {
         SubscribeInformaction info;
         if (requestInfo.TryReadFromJsonStream <SubscribeInformaction>(out info))
         {
             var msgServer = (MessageServer)server;
             msgServer.MessageAgent.UnSubscribe(info);
         }
     }
     catch (Exception ex)
     {
         session.Logger.Error(string.Format("取消订阅失败,请查看订阅信息是否完整!异常消息:{0}", ex.Message), ex);
     }
 }