首页 > 其他分享 >rabbitmq在.net中的使用

rabbitmq在.net中的使用

时间:2023-06-26 21:57:40浏览次数:38  
标签:Console false RabbitMQ rabbitmq 使用 using net message channel

在 .NET 中使用 RabbitMQ 的步骤如下:

  1. 安装 RabbitMQ

    首先,您需要在系统上安装 RabbitMQ。您可以从 RabbitMQ 官方网站下载适用于您所使用的操作系统的安装程序。如果您使用的是 Windows 操作系统,则可以从 Microsoft 官网下载安装程序。

  1. 安装 RabbitMQ 客户端库
     在 .NET 应用程序中使用 RabbitMQ,需要安装 RabbitMQ 客户端库。您可以在 NuGet 上找到 RabbitMQ 客户端库的包。要安装它,可以使用 Visual Studio 软件包管理器或者命令行:
dotnet add package RabbitMQ.Client
  1. 编写 RabbitMQ 生产者代码

    以下是使用 RabbitMQ 发送消息的示例代码。

using System;
using System.Text;
using RabbitMQ.Client;
using RabbitMQ.Client.Events;

class Program
{
    static void Main(string[] args)
    {
        ConnectionFactory factory = new ConnectionFactory() { HostName = "localhost" };
        using (IConnection connection = factory.CreateConnection())
        using (IModel channel = connection.CreateModel())
        {
            channel.QueueDeclare(queue: "hello",
                                 durable: false,
                                 exclusive: false,
                                 autoDelete: false,
                                 arguments: null);

            string message = "Hello World!";
            byte[] body = Encoding.UTF8.GetBytes(message);

            channel.BasicPublish(exchange: "",
                                 routingKey: "hello",
                                 basicProperties: null,
                                 body: body);
            Console.WriteLine(" [x] Sent {0}", message);
        }

        Console.WriteLine(" Press [enter] to exit.");
        Console.ReadLine();
    }
}
  1. 编写 RabbitMQ 消费者代码

    以下是使用 RabbitMQ 接收消息的示例代码。

using System;
using System.Text;
using RabbitMQ.Client;
using RabbitMQ.Client.Events;

class Program
{
    static void Main(string[] args)
    {
        ConnectionFactory factory = new ConnectionFactory() { HostName = "localhost" };
        using (IConnection connection = factory.CreateConnection())
        using (IModel channel = connection.CreateModel())
        {
            channel.QueueDeclare(queue: "hello",
                                 durable: false,
                                 exclusive: false,
                                 autoDelete: false,
                                 arguments: null);

            EventingBasicConsumer consumer = new EventingBasicConsumer(channel);
            consumer.Received += (model, ea) =>
            {
                byte[] body = ea.Body;
                string message = Encoding.UTF8.GetString(body);
                Console.WriteLine(" [x] Received {0}", message);
            };

            channel.BasicConsume(queue: "hello",
                                 autoAck: true,
                                 consumer: consumer);

            Console.WriteLine(" Press [enter] to exit.");
            Console.ReadLine();
        }
    }
}

以上示例代码将 "Hello World!" 消息发送到 "hello" 队列中,然后将此消息收到并打印到控制台。

 注意:在使用 RabbitMQ 前,请确保已经在计算机上安装 RabbitMQ 和 .NET RabbitMQ 客户端库。

标签:Console,false,RabbitMQ,rabbitmq,使用,using,net,message,channel
From: https://www.cnblogs.com/UsefulIdiot/p/17506786.html

相关文章

  • 基于前端Vue后端.NetCore Web后台管理系统通用开本框架采用前后端分离技术
    基于前端Vue后端.NetCoreWeb后台管理系统通用开本框架采用前后端分离技术,前端使用vue2.6.0,后端使用.netcore3.1,支持跨平台、多租户、支持MySQLSQLServerOracle多数据库,模块化设计,高性能,高颜值,不管是个人学习还是企业做项目都非常适合 原创文章,转载请说明出处,资料来源:http://im......
  • C# DataTable. AsEnumerable()使用
    C#DataTable.AsEnumerable()使用 1.添加引用System.Data.DataSetExtensions2.可以将DataTable转成List使用vardata=dt.AsEnumerable().ToList();foreach(vartempindata){GuidA=temp.Field<Guid>("A");stringB=temp.Field<string>("B");......
  • SQL数据库中CONVERT的使用
    定义和用法CONVERT()函数是把日期转换为新数据类型的通用函数。CONVERT()函数可以用不同的格式显示日期/时间数据。语法CONVERT(data_type(length),data_to_be_converted,style)data_type(length) 规定目标数据类型(带有可选的长度)。data_to_be_converted 含有需要转换的......
  • 教程|如何使用腾讯云搭建直播系统
        随着互联网技术的发展,直播已经成为了一种流行的在线互动方式。本文将为您介绍如何使用腾讯云直播搭建一个直播系统。具体步骤如下:注册腾讯云账号    您需要注册一个腾讯云账号。访问腾讯云官网,点击右上角的“注册”按钮,按照提示填写相关信息并完成实名......
  • Python随机数据生成——Faker的使用
    安装Fakerpipinstallfaker导入模块及基本配置#导入FakerfromfakerimportFaker#初始化,设置locale为中文;默认是英文fake=Faker(locale='zh_CN')随机日期生成print('随机年月日:',fake.date(pattern='%Y-%m-%d'))print('随机年:',fake.year())print(......
  • 织梦 channelartlist 支持 limit 属性使用
    查找字段:$attlist='typeid|0,row|20,cacheid|';替换为:$attlist='typeid|0,row|20,cacheid|'; 效果图: 在“$dsql->SetQuery”前面添加$limit=trim(preg_replace('#limit#is','',$limit));if($limit!='')$limitsql="L......
  • Mybatis 使用汇总(介绍,功能,连接池,日志,注解,XML映射文件)
    Mybatis介绍Mybatis功能Mybatis连接池mybatis日志Mybatis注解MybatisXML映射文件01.Mybatis是一款优秀的持久层框架(DAO),它支持自定义SQL、存储过程以及高级映射。MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作。MyBatis可以通过简单的XML......
  • .net core使用channel消息队列
    .netcore使用channel消息队列背景最近做一个项目,连接了很多设备,需要保存设备的心跳数据,刚开始的做法是直接接收到设备的数据之后进行心跳数据的保存,但是随着设备多了起来,然后设备的使用时长不断的加大,对数据库的压力也比较大,所以想着优化一下。方案调研1.使用第三方中间件常......
  • Pytorch | `torch.multiprocessing.spawn` 函数的使用
    torch.multiprocessing.spawn是PyTorch中用于启动多进程的函数,可以用于分布式训练等场景。其函数签名如下:torch.multiprocessing.spawn(fn,args=(),nprocs=1,join=True,daemon=False,start_method='spawn',)参数:fn(function)–函数被称......
  • vue3.0之axios使用
    //导入包importaxiosfrom"axios";//使用示例axios.post('发送请求地址',{携带变量key1:变量value1,携带变量key2:变量value2,}).then(response=>{//后端返回给前端的数据都在response.data里,可以通过“response.data.键”进行调用if(response.data.cod......