隐藏

C#操作RabbitMQ的完整实例

发布:2023/1/9 10:07:36作者:管理员 来源:本站 浏览次数:310

一、下载rabbitmq


http://www.rabbitmq.com/install-windows.html



二、下载otp


http://www.erlang.org/downloads



三、安装otp、rabbitmq




四、配置rabbitmq


找到bat的目录



执行相关命令



1.添加用户密码 rabbitmqctl add_user wenli wenli


2.设置wenli为管理员rabbitmqctl set_user_tags wenli administrator


3.启动rabbitmq的web管理rabbitmq-plugins enable rabbitmq_management


4.创建virtual host



5.设置用户权限


点击用户名进行设置



将virtual hosts 权限赋给用户wenli



6.创建exchanges



五.创建c# console


1.下载rabbitmq驱动 https://github.com/yswenli/wenli.data.rabbitmq/releases/tag/release1.0.0


2.添加引用


3.添加配置



4.测试代码:



using system;

using system.text;

using system.threading;

using system.threading.tasks;

 

namespace wenli.data.rabbitmq.console

{

  using console = system.console;

 

  class program

  {

    static void main(string[] args)

    {

      console.title = "wenli.data.rabbitmq.console";

      console.writeline("正连接到mq");

 

      try

      {

        test();

      }

      catch (exception ex)

      {

        console.writeline("err:" + ex.message + ex.source + ex.stacktrace);

      }

 

      console.read();

    }

 

 

    static void test()

    {

 

      var topic = "testtopic";

 

      var cnn = rabbitmqbuilder.get(mqconfig.default).getconnection();

 

      var operation = cnn.getoperation(topic);

 

      console.writeline("正连接到订阅【" + topic + "】");

 

      operation.subscribe();

 

      console.writeline("正在入队");

 

      task.factory.startnew(() =>

      {

        while (true)

        {

          operation.enqueue(encoding.utf8.getbytes(datetime.now.tostring("yyyy-mm-dd hh:mm:ss.fff") + "   hello!"));

          thread.sleep(1);

        }

      });

 

 

 

 

      console.writeline("正在出队");

 

 

 

      task.factory.startnew(() =>

      {

        while (true)

        {

          var result = operation.dnqueue();

 

          if (result == null)

          {

            thread.sleep(1);

          }

          else

          {

            console.writeline(encoding.utf8.getstring(result));

          }

        }

      });

 

      console.readline();

 

      console.writeline("正在取消订阅");

 

      operation.unsubscribe();

 

      console.writeline("测试完成");

    }

  }

}


5.运行结果:





至此c# 成功操作rabbitmq完成。