• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

c#中如何操作消息队列

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
  “消息”是在两台计算机间传送的数据单位。消息可以非常简单,例如只包含文本字符串;也可以更复杂,可能包含嵌入对象。

  消息被发送到队列中。“消息队列”是在消息的传输过程中保存消息的容器。消息队列管理器在将消息从它的源中继到它的目标时充当中间人。队列的主要目的是提供路由并保证消息的传递;如果发送消息时接收者不可用,消息队列会保留消息,直到可以成功地传递它。

 

c#中发往消息队列中发送消息

 

  public bool SendMessage(string title, string body)
        {
            MessageQueue SmsQueue = new MessageQueue();
            try
            {
                string mqPath = System.Configuration.ConfigurationSettings.AppSettings["SiteEnvironmentMQPath"];//给基站告警用的(wz的程序)
                string MQPath = string.Format(@"FormatName:DIRECT=TCP:{0}", mqPath);

                SmsQueue.MessageReadPropertyFilter.Body = true;
                SmsQueue.MessageReadPropertyFilter.AppSpecific = true;
                SmsQueue.MessageReadPropertyFilter.Priority = true;
                SmsQueue.Formatter = new System.Messaging.XmlMessageFormatter(new Type[] { typeof(string) });
                SmsQueue.Path = MQPath;
                Message objMsg = new Message();
                objMsg.Label = title;
                objMsg.Body = body;
                SmsQueue.Send(objMsg);

        return true;
            }
            catch (Exception ex)
            {
                return false;
            }
            finally
            {
                SmsQueue.Close();
            }
        }

c# 从消息队列中取消息

 public string ReceiveMessage(string mqPath)
        {
            string ret = "";
            MessageQueue SmsQueue = new MessageQueue();
            try
            {
                string MQPath = string.Format(@"FormatName:DIRECT=TCP:{0}", mqPath);
                //string MQPath = System.Configuration.ConfigurationSettings.AppSettings["MQPath"];
                SmsQueue.MessageReadPropertyFilter.Body = true;
                SmsQueue.MessageReadPropertyFilter.AppSpecific = true;
                SmsQueue.MessageReadPropertyFilter.Priority = true;
                SmsQueue.Formatter = new System.Messaging.XmlMessageFormatter(new Type[] { typeof(string) });
                SmsQueue.Path = MQPath;
                Message objMsg = SmsQueue.Receive();
                ret = objMsg.Body.ToString();
            }
            catch (Exception ex)
            {
                //LogClass.WriteLog("错误", DateTime.Now.ToString(), ex.Message, "从消息队列读取告警数据");
                //System.Threading.Thread.Sleep(Convert.ToInt16(System.Configuration.ConfigurationSettings.AppSettings["sleepTime"]));
            }
            finally
            {
                SmsQueue.Close();
            }
            return ret;
        }


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#Socket流数据大小端读写封装发布时间:2022-07-10
下一篇:
C#实现把String字符串转化为SQL语句中的In后接的参数发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap