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); } }
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); } } }
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); }
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); } }