zoukankan      html  css  js  c++  java
  • MSMQ(2)——.net下的消息队列管理空间

    System.Messaging 名字空间下包含了用于连接到、监视和管理网络上的消息队列,并发送、接收或查看消息的类。

    其中一个主要的类是MessageQueue

    它提供对消息队列上的消息进行访问。

    它有很多成员。例如:

    ·Send方法,用于向队列中写入消息。

    ·Receive,ReceiveById,ReceiveByCorrelationId方法,用于从队列中读取消息。

    ·Peek,与Receive相似,只是不更改队列内容,就是在赢取消息时不会从队列中移除消息

    ·BeginPeek,异步读取消息

    还提供了其它功能:

    ·创建和删除消息队列的队列

    ·通过枚举逐个访问队列中的消息

    ·通过枚举循环访问系统队列

    ·设置基于ACL访问权限

    ·使用连接缓存

    另一个类是:Message

    Message类可以对消息进行详尽的控制,且是队列接收或查看消息时使用的对象。除了消息正文外,这个类的属性还包括确认设置,格式化程序选择,标识,身份验证,加密信息,时间戳,服务器日记,不负死信队列的指示以及事务。

     

    简单类型的发送与接收

    (1)创建队列

    private MessageQueue CreateQueue()

    {

        string trPath=@".\Private$\SelfPrivateDemo";

        MessageQueue _queue;

        if (!MessageQueue.Exists(trPath))

           return MessageQueue.Create(trPath);

        _queue = new MessageQueue(trPath);

        return _queue;

    }

    这里创建队列对象,然后可以通过队列进行发送和接收等操作。

    (2)发送字符串

    public void SendMessage(string strMsg)

    {

        MessageQueue _queue = CreateQueue();

        Message _message = new Message(strMsg);

        _queue.Send(_message);   

    }

    (3)接收字符串

    public string ReceiveMessage()

    {

        MessageQueue _queue = CreateQueue();   

        Message _message=_queue.Receive();

    _message.Formatter =

    new XmlMessageFormatter(new Type[] { typeof(string) });

        return _message.Body.ToString();

    }

    这里解析队列消息时要用到格式化器

    (4)测试

    mm.SendMessage("Hello,");

     

    这里在消息队列管理控制台中可以看到添加了队列消息,可以查看一下它的内容:

    <?xml ver sion="1.0"?>

    <string>Hello ,江</string>

    大概是这段xml。因为传递消息用到了中文字符,这里又采用了文字编码,所以是乱码状态。

     

    在接收时,string strMsg = mm.ReceiveMessage();

    会得到消息队列中的消息,并按格式化器解析为正确的类型。

     

    消息Message对象可以设置正文Body,也可以设置和获取很多属性。

    Console.WriteLine("消息标识:{0}",_message.Id);      

    Console.WriteLine("消息类型:{0}", _message.MessageType.ToString());

     

  • 相关阅读:
    avcodec_open2()分析
    CentOS 6.9 下安装DB2
    使用python操作mysql数据库
    python之tcp自动重连
    决策树算法
    文件夹自动同步工具
    KNN算法介绍
    go语言生成uuid
    golang之log rotate
    golang之tcp自动重连
  • 原文地址:https://www.cnblogs.com/jams742003/p/1689682.html
Copyright © 2011-2022 走看看